def test_tasks_with_tags_return_those_tags_values(self): # given t1 = Task('t1') tag1 = Tag('tag1') t1.tags.append(tag1) t2 = Task('t2') tag2 = Tag('tag2') t2.tags.append(tag1) t2.tags.append(tag2) self.pl.create_all() self.pl.add(t1) self.pl.add(t2) self.pl.add(tag1) self.pl.add(tag2) self.pl.commit() # when result = set(t1.get_tag_values()) # then self.assertEqual({tag1.value}, result) # when result = set(t2.get_tag_values()) # then self.assertEqual({tag1.value, tag2.value}, result)
def test_lazy_overrides_non_lazy_tags(self): # given tag = Tag('tag') tag2 = Tag('tag2') # when result = Task.from_dict({'tags': [tag]}, lazy={'tags': [tag2]}) # then self.assertIsInstance(result, Task) self.assertEqual([tag2], list(result.tags))
def test_generates_str_string(self): # given tag = Tag(value='value') tag.id = 123 #when r = str(tag) # then fmt = 'Tag(\'value\', tag id=123, id=[{}])' expected = fmt.format(id(tag)) self.assertEqual(expected, r)
def test_to_dict_returns_correct_values(self): # when tag = Tag('name', '12345') # then self.assertEqual( { 'value': 'name', 'description': '12345', 'id': None, 'tasks': [] }, tag.to_dict())
def test_any_lazy_overrides_all_non_lazy_properties(self): # given task = Task('task') # when result = Tag.from_dict({'tasks': [task]}, lazy={'x': 123}) # then self.assertEqual(result.object_type, ObjectTypes.Tag) self.assertEqual([], list(result.tasks))
def test_tasks_non_empty_yields_same(self): # given task = Task('task') # when result = Tag.from_dict({'tasks': [task]}) # then self.assertEqual(result.object_type, ObjectTypes.Tag) self.assertEqual([task], list(result.tasks))
def test_tags_non_empty_yields_same(self): # given tag = Tag('tag') # when result = Task.from_dict({'tags': [tag]}) # then self.assertIsInstance(result, Task) self.assertEqual([tag], list(result.tags))
def test_lazy_overrides_non_lazy_tasks(self): # given task = Task('task') task2 = Task('task2') # when result = Tag.from_dict({'tasks': [task]}, lazy={'tasks': [task2]}) # then self.assertEqual(result.object_type, ObjectTypes.Tag) self.assertEqual([task2], list(result.tasks))
def test_empty_yields_empty_dbtag(self): # when result = Tag.from_dict({}) # then self.assertEqual(result.object_type, ObjectTypes.Tag) self.assertIsNone(result.id) self.assertIsNone(result.value) self.assertIsNone(result.description) self.assertEqual([], list(result.tasks))
def test_valid_id_gets_set(self): # when result = Tag.from_dict({'id': 123}) # then self.assertEqual(result.object_type, ObjectTypes.Tag) self.assertEqual(123, result.id)
def test_constructor_default_id_is_none(self): # when tag = Tag('name', 'description') # then self.assertIsNone(tag.id)
def test_valid_value_gets_set(self): # when result = Tag.from_dict({'value': 'abc'}) # then self.assertEqual(result.object_type, ObjectTypes.Tag) self.assertEqual('abc', result.value)
def test_constructor_sets_description(self): # when tag = Tag('name', 'description') # then self.assertEqual('description', tag.description)
def create_tag(self, value, description=None, lazy=None): return Tag(value=value, description=description, lazy=lazy)
def setUp(self): self.task = Task('task') self.tag = Tag('tag')
def test_description_none_becomes_none(self): # when result = Tag.from_dict({'description': None}) # then self.assertEqual(result.object_type, ObjectTypes.Tag) self.assertIsNone(result.description)
def test_valid_description_gets_set(self): # when result = Tag.from_dict({'description': 'abc'}) # then self.assertEqual(result.object_type, ObjectTypes.Tag) self.assertEqual('abc', result.description)
def test_value_none_is_ignored(self): # when result = Tag.from_dict({'value': None}) # then self.assertEqual(result.object_type, ObjectTypes.Tag) self.assertIsNone(result.value)
def test_tasks_empty_yields_empty(self): # when result = Tag.from_dict({'tasks': []}) # then self.assertEqual(result.object_type, ObjectTypes.Tag) self.assertEqual([], list(result.tasks))