90 lines
2.7 KiB
Python
90 lines
2.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import mock
|
|
import os
|
|
import pygame
|
|
|
|
from pie_time import application as app_module
|
|
from pie_time.application import PieTime
|
|
from pie_time.card import AbstractCard
|
|
|
|
|
|
class Test_AbstractCard(object):
|
|
def _dummy_card(self, **settings):
|
|
app = PieTime(None)
|
|
card = AbstractCard()
|
|
card.set_app(app)
|
|
card.set_settings(settings)
|
|
|
|
return card
|
|
|
|
def test_init(self):
|
|
card = AbstractCard()
|
|
assert card._app is None
|
|
assert card._settings == {}
|
|
assert card._surface is None
|
|
|
|
def test_set_app(self):
|
|
card = AbstractCard()
|
|
app = mock.Mock(spec=PieTime)
|
|
card.set_app(app)
|
|
assert card._app == app
|
|
|
|
def test_set_settings(self):
|
|
card = AbstractCard()
|
|
settings = {'spam': 'eggs'}
|
|
card.set_settings(settings)
|
|
assert card._settings == settings
|
|
|
|
def test_width(self):
|
|
card = self._dummy_card()
|
|
assert card.width == card._app.screen_size[0]
|
|
|
|
def test_height(self):
|
|
card = self._dummy_card()
|
|
assert card.height == card._app.screen_size[1]
|
|
|
|
def test_surface(self):
|
|
fake_surface = mock.Mock(spec=pygame.surface.Surface)
|
|
|
|
with mock.patch.object(app_module.pygame.surface, 'Surface',
|
|
return_value=fake_surface):
|
|
card = self._dummy_card()
|
|
assert card.surface == fake_surface
|
|
assert card._surface == card.surface
|
|
app_module.pygame.surface.Surface.assert_called_with((
|
|
card.width, card.height
|
|
))
|
|
|
|
def test_background_color(self):
|
|
card = self._dummy_card()
|
|
assert card.background_color == card._app.BACKGROUND_COLOR
|
|
|
|
def test_background_color_override(self):
|
|
card = self._dummy_card(background_color=(255, 255, 255))
|
|
assert card.background_color == (255, 255, 255)
|
|
|
|
def test_path_for_resource(self):
|
|
card = self._dummy_card()
|
|
|
|
spam_path = card.path_for_resource('spam')
|
|
assert os.path.isabs(spam_path)
|
|
assert card.RESOURCE_FOLDER in spam_path
|
|
assert spam_path.endswith('spam')
|
|
|
|
spam_eggs_path = card.path_for_resource('spam', folder='eggs')
|
|
assert os.path.isabs(spam_eggs_path)
|
|
assert card.RESOURCE_FOLDER in spam_eggs_path
|
|
assert 'eggs' in spam_eggs_path
|
|
assert spam_eggs_path.endswith('spam')
|
|
|
|
def test_tick(self):
|
|
try:
|
|
card = self._dummy_card()
|
|
card.tick()
|
|
except Exception as exc:
|
|
assert isinstance(exc, RuntimeError)
|
|
assert exc.args[0] == 'TODO'
|
|
else:
|
|
assert False, 'Nothing was raised :('
|