From 76c8a84f7864a9d74abeffe8619fc9c75a564be6 Mon Sep 17 00:00:00 2001 From: Alex Gaynor <alex.gaynor@gmail.com> Date: Sat, 26 Sep 2009 15:01:10 -0400 Subject: [PATCH] more tests, added a remove method to taggable manager --- taggit/managers.py | 8 ++++++++ taggit/tests/tests.py | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/taggit/managers.py b/taggit/managers.py index 46343a9..aa6c1c3 100644 --- a/taggit/managers.py +++ b/taggit/managers.py @@ -40,6 +40,14 @@ class _TaggableManager(models.Manager): self.add(tags) @require_instance_manager + def remove(self, tags): + if isinstance(tags, basestring): + tags = [tags] + TaggedItem.objects.filter(object_id=self.object_id, + content_type=ContentType.objects.get_for_model(self.model)).filter( + tag__name__in=tags).delete() + + @require_instance_manager def clear(self): TaggedItem.objects.filter(object_id=self.object_id, content_type=ContentType.objects.get_for_model(self.model)).delete() diff --git a/taggit/tests/tests.py b/taggit/tests/tests.py index 2c0b6c4..7911244 100644 --- a/taggit/tests/tests.py +++ b/taggit/tests/tests.py @@ -22,3 +22,11 @@ class AddTagTestCase(BaseTaggingTest): pair.tags.add('green') self.assert_tags_equal(pair.tags.all(), ['green']) self.assert_tags_equal(Food.tags.all(), ['green']) + + apple.tags.add('red') + self.assert_tags_equal(apple.tags.all(), ['green', 'red']) + self.assert_tags_equal(Food.tags.all(), ['green', 'red']) + + apple.tags.remove('green') + self.assert_tags_equal(apple.tags.all(), ['red']) + self.assert_tags_equal(Food.tags.all(), ['green', 'red']) -- libgit2 0.26.0