class TestTagModel(TestCase): def test_top_level_tag(self): """ """ self.tag = Tag(name='tag1') self.tag.save() self.tag2 = Tag(name='tag2') self.tag2.save() self.assertTrue(top_level_tags()[1].name == 'tag2') def test_move_tag(self): self.tag = Tag(name='tag1') self.tag.save() self.tag.add_child('tag2') self.tag2 = Tag(name='tag2') self.tag2.save() tag2 = self.tag.childs()[0] try: tag2.move("") except ValueError: pass else: self.assertTrue(False, "this tag should not be moveable here") def test_rename_tag_fails(self): self.tag = Tag(name='tag1') self.tag.save() self.tag2 = Tag(name='tag3') self.tag.save() try: self.tag2.set_shortname('tag1') except ValueError: pass else: self.assertTrue(False, "this tag should not be renameble with this name") def test_childs(self): tag, cr = Tag.objects.get_or_create(name='tag1') tag2, cr = Tag.objects.get_or_create(name='tag1/tag2') tag3, cr = Tag.objects.get_or_create(name='tag1/tag3') self.assertTrue(tag.childs()[1].name == 'tag1/tag3') self.assertTrue(tag.childs()[1].shortname == 'tag3') def test_move(self): tag, cr = Tag.objects.get_or_create(name='tag1') tag2, cr = Tag.objects.get_or_create(name='tag1/tag2') tag3, cr = Tag.objects.get_or_create(name='tag1/tag3') tag4, cr = Tag.objects.get_or_create(name='tag1/tag3/tag4') tag3.move(tag2.name) self.assertTrue(len(tag.childs())==1) self.assertTrue(tag.childs()[0].shortname == 'tag2') self.assertTrue(tag.childs()[0].childs()[0].shortname == 'tag3') self.assertTrue(tag.childs()[0].childs()[0].childs()[0].shortname == 'tag4') def test_move_to_root(self): tag, cr = Tag.objects.get_or_create(name='tag1') tag2, cr = Tag.objects.get_or_create(name='tag1/tag2') tag3, cr = Tag.objects.get_or_create(name='tag1/tag3') tag4, cr = Tag.objects.get_or_create(name='tag1/tag3/tag4') tag3.move("") self.assertTrue(len(top_level_tags())==2) self.assertTrue(len(tag.childs())==1) self.assertTrue(top_level_tags()[1].shortname == 'tag3') self.assertTrue(top_level_tags()[1].childs()[0].shortname == 'tag4')