Skip to content
Snippets Groups Projects
Commit de35ccb7 authored by Simon Kindhauser's avatar Simon Kindhauser
Browse files

Merge branch 'dev' into refactor/folder_structure

parent 64174f0e
No related branches found
No related tags found
No related merge requests found
from datetime import datetime
from blackfennec.util.observable import Observable
class DateTimeViewModelMock(Observable):
def __init__(self, date_time=None):
super().__init__()
self.date_time = date_time or datetime.min
def notify(self, changed_property, name):
self._notify(changed_property, name, self)
......@@ -6,39 +6,48 @@ from blackfennec_doubles.structure.double_string import StringMock
from base.date_time.date_time import DateTime
class DateTimeTestSuite(unittest.TestCase):
def test_can_default_construct(self):
date_time = DateTime()
self.assertEqual(date_time.date_time, datetime.min)
def test_can_construct_with_map(self):
data = dict()
data[DateTime.DATE_TIME_KEY] = StringMock(datetime.now().isoformat())
data_map = MapMock(data)
DateTime(data_map)
self.assertIn(DateTime.DATE_TIME_KEY, data_map.value)
def test_date_time_getter(self):
data = dict()
data[DateTime.DATE_TIME_KEY] = StringMock(datetime.now().isoformat())
data_map = MapMock(data)
date_time = DateTime(data_map)
date_time_string = date_time.date_time.isoformat()
self.assertEqual(date_time_string, data[DateTime.DATE_TIME_KEY].value)
def test_date_time_getter_wrong_datetime_format(self):
data = dict()
data[DateTime.DATE_TIME_KEY] = StringMock('16.04.2021')
data_map = MapMock(data)
date_time = DateTime(data_map)
date_time_string = date_time.date_time
self.assertEqual(date_time_string, datetime.min)
def test_date_time_setter(self):
date_time_value = datetime.now()
date_time = DateTime()
date_time.date_time = date_time_value
self.assertEqual(date_time.date_time, date_time_value)
def test_can_default_construct():
date_time = DateTime()
assert date_time.date_time == datetime.min
def test_can_construct_with_map():
data = dict()
data[DateTime.DATE_TIME_KEY] = StringMock(datetime.now().isoformat())
data_map = MapMock(data)
DateTime(data_map)
assert DateTime.DATE_TIME_KEY in data_map.value
def test_date_time_getter():
data = dict()
data[DateTime.DATE_TIME_KEY] = StringMock(datetime.now().isoformat())
data_map = MapMock(data)
date_time = DateTime(data_map)
date_time_string = date_time.date_time.isoformat()
assert date_time_string == data[DateTime.DATE_TIME_KEY].value
def test_date_time_getter_wrong_datetime_format():
data = dict()
data[DateTime.DATE_TIME_KEY] = StringMock('16.04.2021')
data_map = MapMock(data)
date_time = DateTime(data_map)
date_time_string = date_time.date_time
assert date_time_string == datetime.min
def test_date_time_setter():
date_time_value = datetime.now()
date_time = DateTime()
date_time.date_time = date_time_value
assert date_time.date_time == date_time_value
def test_date_time_repr():
date_time = DateTime()
date_time_string = date_time.__repr__()
assert datetime.min.isoformat() in date_time_string
from datetime import datetime
import pytest
from blackfennec_doubles.util.double_observable import ObservableMock
from doubles.date_time.double_date_time_view_model import DateTimeViewModelMock
from base.date_time.date_time_editor import DateTimeEditor
@pytest.fixture()
def view_model():
return DateTimeViewModelMock()
@pytest.fixture()
def date_time_editor(view_model):
return DateTimeEditor(view_model)
def test_can_construct_date_time_editor(date_time_editor):
assert isinstance(date_time_editor, DateTimeEditor)
def test_get_hour(date_time_editor):
assert date_time_editor.hour == '00'
def test_set_hour(date_time_editor):
date_time_editor._hour.set_text('12')
assert date_time_editor.hour == '12'
def test_set_hour_minimal(date_time_editor):
with pytest.raises(ValueError):
date_time_editor.hour = -1
assert date_time_editor.hour == '00'
def test_set_hour_maximal(date_time_editor):
date_time_editor._hour.set_text('23')
assert date_time_editor.hour == '23'
def test_set_hour_out_of_range(date_time_editor):
date_time_editor.hour = 24
assert date_time_editor.hour == '23'
def test_get_minute(date_time_editor):
assert date_time_editor.minute == '00'
def test_get_second(date_time_editor):
assert date_time_editor.second == '00'
def test_set_now(date_time_editor):
now = datetime.now()
date_time_editor._on_set_to_now(None)
assert int(date_time_editor.hour) == now.hour or int(date_time_editor.hour) == now.hour - 1
assert int(date_time_editor.minute) == now.minute or int(date_time_editor.minute) == now.minute - 1
assert now.second <= int(date_time_editor.second) <= now.second + 20
def test_update_date_time(date_time_editor, view_model):
now = datetime.now()
view_model.notify(now, 'date_time')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment