Example #1
0
 def test_get_value_returns_empty_value(self):
     child_instance = RelatedField(read_only=True)
     instance = ManyRelatedField(child_relation=child_instance)
     instance.bind('pk_list', None)
     self.assertEqual(
         instance.get_value({'pks': [1, 2, 3]}),
         empty
     )
Example #2
0
    def test_to_internal_value_raises_error_for_empty_value(self):
        child_instance = RelatedField(read_only=True)
        instance = ManyRelatedField(
            child_relation=child_instance, allow_empty=False
        )

        with self.assertRaises(ValidationError):
            instance.to_internal_value([])
Example #3
0
    def test_to_representation(self):

        class FakeRelatedField(RelatedField):

            def to_representation(self, value):
                return value

        child_instance = FakeRelatedField(read_only=True)
        instance = ManyRelatedField(child_relation=child_instance)
        data = [{'pk': 1}, {'pk': 2}, {'pk': 3}]
        self.assertEqual(instance.to_representation(data), data)
Example #4
0
    def test_to_internal_value(self):

        class FakeRelatedField(RelatedField):

            def to_internal_value(self, data):
                return data

        child_instance = FakeRelatedField(read_only=True)
        instance = ManyRelatedField(child_relation=child_instance)
        data = [{'pk': 1}, {'pk': 2}, {'pk': 3}]
        self.assertEqual(instance.to_internal_value(data), data)
Example #5
0
    def test_get_attribute_raises_not_implemented_error(self):

        class FakeObject(object):

            def __init__(self, pk):
                self.pk = pk

            def __str__(self):
                return str(self.pk)

        child_instance = RelatedField(read_only=True)
        instance = ManyRelatedField(child_relation=child_instance)

        with self.assertRaises(NotImplementedError):
            instance.get_attribute(FakeObject(10))
Example #6
0
    def test_grouped_choices(self):

        class FakeObject(object):

            def __init__(self, pk):
                self.pk = pk

            def __str__(self):
                return str(self.pk)

        class FakeRelatedField(RelatedField):

            def get_queryset(self):
                return [FakeObject(1), FakeObject(2), FakeObject(3)]

            def to_representation(self, value):
                return value

        child_instance = FakeRelatedField(read_only=True)
        instance = ManyRelatedField(child_relation=child_instance)
        self.assertEqual(
            instance.grouped_choices,
            collections.OrderedDict([('1', '1'), ('2', '2'), ('3', '3')])
        )
Example #7
0
    def test_to_internal_value_raises_error_for_not_a_list_argument(self):
        child_instance = RelatedField(read_only=True)
        instance = ManyRelatedField(child_relation=child_instance)

        with self.assertRaises(ValidationError):
            instance.to_internal_value(object())
Example #8
0
    def test_init_raises_assertion_error_for_missed_child_argument(self):

        with self.assertRaises(AssertionError):
            ManyRelatedField()