From cb2c2f3fc331b3892fb4fed69babe668e287e99d Mon Sep 17 00:00:00 2001 From: Rohan Rangray Date: Tue, 12 May 2015 21:13:30 -0700 Subject: [PATCH] Fixed FlashcardMask JSON deserialization. --- flashcards/serializers.py | 4 ++-- flashcards/validators.py | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/flashcards/serializers.py b/flashcards/serializers.py index 168bd84..3eeda01 100644 --- a/flashcards/serializers.py +++ b/flashcards/serializers.py @@ -95,11 +95,11 @@ class MaskFieldSerializer(serializers.Field): return dumps(list(self._make_mask(value))) def to_internal_value(self, value): - return self._make_mask(value) + return self._make_mask(loads(value)) def _make_mask(self, data): try: - mask = FlashcardMask(loads(data)) + mask = FlashcardMask(data) except ValueError: raise serializers.ValidationError("Invalid JSON for MaskField") except TypeError: diff --git a/flashcards/validators.py b/flashcards/validators.py index 81d8417..1620eef 100644 --- a/flashcards/validators.py +++ b/flashcards/validators.py @@ -4,8 +4,9 @@ from collections import Iterable class FlashcardMask(set): - def __init__(self, *args, **kwargs): - super(FlashcardMask, self).__init__(*args, **kwargs) + def __init__(self, iterable, *args, **kwargs): + iterable = map(tuple, iterable) + super(FlashcardMask, self).__init__(iterable, *args, **kwargs) self._iterable_check() self._interval_check() self._overlap_check() -- 1.9.1