Skip to content
This repository has been archived by the owner on May 10, 2023. It is now read-only.

feat(__init__): Bump version #5

Merged
merged 3 commits into from
May 14, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion requirements-test.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ flake8>=2.1.0
tox>=1.7.0

djangorestframework==3.0.5
django-taggit==0.12.2
django-taggit==0.13.0
2 changes: 1 addition & 1 deletion taggit_serializer/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '0.1.1'
__version__ = '0.1.2'
7 changes: 6 additions & 1 deletion taggit_serializer/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,12 @@ def update(self, object, validated_data):
def _save_tags(self, tag_object, tags):
for key in tags.keys():
tag_values = tags.get(key)
[getattr(tag_object, key).add(tag) for tag in tag_values]
for tag in tag_values:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did this by using

getattr(tag_object, key).set(*[tag for tag in tag_values])

which I think has the same effect.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting approach, I will create an issue for it as an enhancement, thanks for pointing it out!

getattr(tag_object, key).add(tag)

for tag in tag_object.tags.names():
if tag not in tag_values:
getattr(tag_object, key).remove(tag)

return tag_object

Expand Down
18 changes: 18 additions & 0 deletions tests/test_serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,21 @@ def test_taggit_serializer_create(self):
test_model = serializer.save()

assert len(test_model.tags.all()) == len(request_data.get('tags'))

def test_taggit_removes_tags(self):
"""
Test if the old assigned tags are removed
"""
test_model = TestModel.objects.create()
test_model.tags.add("1")

request_data = {
"tags": ["2", "3"]
}

serializer = TestModelSerializer(test_model, data=request_data)
serializer.is_valid()
test_model = serializer.save()

assert TestModel.objects.filter(tags__name__in=["1"]).count() == 0
assert TestModel.objects.filter(tags__name__in=["1", "2"]).count() == 1