def test_naturalkey_rest_serializer(self): # Serializer should include validator serializer = NaturalKeySerializer.for_model(NaturalKeyChild) self.maxDiff = 10000000 expect = """ Serializer(): parent = Serializer(required=True): code = CharField(max_length=10, required=True) group = CharField(max_length=10, required=True) mode = CharField(max_length=10, required=True) class Meta: validators = [<NaturalKeyValidator(queryset=NaturalKeyChild.objects.all(), fields=('parent', 'mode'))>]""".replace(" ", "")[1:] # noqa self.assertEqual(str(serializer()), expect)
def test_naturalkey_rest_singleunique(self): # Serializer should only have single top-level validator serializer = NaturalKeySerializer.for_model( ModelWithSingleUniqueField)() expect = """ Serializer(): code = CharField(max_length=10, validators=[]) class Meta: validators = [<NaturalKeyValidator(queryset=ModelWithSingleUniqueField.objects.all(), fields=('code',))>]""".replace( " ", "")[1:] # noqa self.assertEqual(expect, str(serializer)) fields = serializer.get_fields() self.assertTrue(fields['code'].required)
def test_naturalkey_rest_singleunique(self): # Serializer should only have single top-level validator serializer = NaturalKeySerializer.for_model( ModelWithSingleUniqueField )() expect = """ Serializer(): code = CharField(max_length=10, validators=[]) class Meta: validators = [<NaturalKeyValidator(queryset=ModelWithSingleUniqueField.objects.all(), fields=('code',))>]""".replace(" ", "")[1:] # noqa self.assertEqual(expect, str(serializer)) fields = serializer.get_fields() self.assertTrue(fields['code'].required)
def test_naturalkey_rest_serializer(self): # Serializer should include validator serializer = NaturalKeySerializer.for_model(NaturalKeyChild)() expect = """ Serializer(): parent = Serializer(): code = CharField(max_length=10) group = CharField(max_length=10) mode = CharField(max_length=10) class Meta: validators = [<NaturalKeyValidator(queryset=NaturalKeyChild.objects.all(), fields=('parent', 'mode'))>]""".replace(" ", "")[1:] # noqa self.assertEqual(expect, str(serializer)) fields = serializer.get_fields() self.assertTrue(fields['parent'].required) self.assertTrue(fields['mode'].required) self.assertTrue(fields['parent'].get_fields()['code'].required)
def test_naturalkey_rest_serializer(self): # Serializer should include validator serializer = NaturalKeySerializer.for_model(NaturalKeyChild)() expect = """ Serializer(): parent = Serializer(): code = CharField(max_length=10) group = CharField(max_length=10) mode = CharField(max_length=10) class Meta: validators = [<NaturalKeyValidator(queryset=NaturalKeyChild.objects.all(), fields=('parent', 'mode'))>]""".replace( " ", "")[1:] # noqa self.assertEqual(expect, str(serializer)) fields = serializer.get_fields() self.assertTrue(fields['parent'].required) self.assertTrue(fields['mode'].required) self.assertTrue(fields['parent'].get_fields()['code'].required)
class NaturalKeyChildViewSet(viewsets.ModelViewSet): queryset = NaturalKeyChild.objects.all() serializer_class = NaturalKeySerializer.for_model( NaturalKeyChild )