mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-11-22 17:47:04 +03:00
Merge pull request #4833 from auvipy/hyper
converted test asserts of hyperlin relations to pytest
This commit is contained in:
commit
e21afbe750
|
@ -91,7 +91,7 @@ class HyperlinkedManyToManyTests(TestCase):
|
||||||
{'url': '/manytomanysource/3/', 'name': 'source-3', 'targets': ['/manytomanytarget/1/', '/manytomanytarget/2/', '/manytomanytarget/3/']}
|
{'url': '/manytomanysource/3/', 'name': 'source-3', 'targets': ['/manytomanytarget/1/', '/manytomanytarget/2/', '/manytomanytarget/3/']}
|
||||||
]
|
]
|
||||||
with self.assertNumQueries(4):
|
with self.assertNumQueries(4):
|
||||||
self.assertEqual(serializer.data, expected)
|
assert serializer.data == expected
|
||||||
|
|
||||||
def test_many_to_many_retrieve(self):
|
def test_many_to_many_retrieve(self):
|
||||||
queryset = ManyToManySource.objects.all()
|
queryset = ManyToManySource.objects.all()
|
||||||
|
@ -102,7 +102,7 @@ class HyperlinkedManyToManyTests(TestCase):
|
||||||
{'url': 'http://testserver/manytomanysource/3/', 'name': 'source-3', 'targets': ['http://testserver/manytomanytarget/1/', 'http://testserver/manytomanytarget/2/', 'http://testserver/manytomanytarget/3/']}
|
{'url': 'http://testserver/manytomanysource/3/', 'name': 'source-3', 'targets': ['http://testserver/manytomanytarget/1/', 'http://testserver/manytomanytarget/2/', 'http://testserver/manytomanytarget/3/']}
|
||||||
]
|
]
|
||||||
with self.assertNumQueries(4):
|
with self.assertNumQueries(4):
|
||||||
self.assertEqual(serializer.data, expected)
|
assert serializer.data == expected
|
||||||
|
|
||||||
def test_many_to_many_retrieve_prefetch_related(self):
|
def test_many_to_many_retrieve_prefetch_related(self):
|
||||||
queryset = ManyToManySource.objects.all().prefetch_related('targets')
|
queryset = ManyToManySource.objects.all().prefetch_related('targets')
|
||||||
|
@ -119,15 +119,15 @@ class HyperlinkedManyToManyTests(TestCase):
|
||||||
{'url': 'http://testserver/manytomanytarget/3/', 'name': 'target-3', 'sources': ['http://testserver/manytomanysource/3/']}
|
{'url': 'http://testserver/manytomanytarget/3/', 'name': 'target-3', 'sources': ['http://testserver/manytomanysource/3/']}
|
||||||
]
|
]
|
||||||
with self.assertNumQueries(4):
|
with self.assertNumQueries(4):
|
||||||
self.assertEqual(serializer.data, expected)
|
assert serializer.data == expected
|
||||||
|
|
||||||
def test_many_to_many_update(self):
|
def test_many_to_many_update(self):
|
||||||
data = {'url': 'http://testserver/manytomanysource/1/', 'name': 'source-1', 'targets': ['http://testserver/manytomanytarget/1/', 'http://testserver/manytomanytarget/2/', 'http://testserver/manytomanytarget/3/']}
|
data = {'url': 'http://testserver/manytomanysource/1/', 'name': 'source-1', 'targets': ['http://testserver/manytomanytarget/1/', 'http://testserver/manytomanytarget/2/', 'http://testserver/manytomanytarget/3/']}
|
||||||
instance = ManyToManySource.objects.get(pk=1)
|
instance = ManyToManySource.objects.get(pk=1)
|
||||||
serializer = ManyToManySourceSerializer(instance, data=data, context={'request': request})
|
serializer = ManyToManySourceSerializer(instance, data=data, context={'request': request})
|
||||||
self.assertTrue(serializer.is_valid())
|
assert serializer.is_valid()
|
||||||
serializer.save()
|
serializer.save()
|
||||||
self.assertEqual(serializer.data, data)
|
assert serializer.data == data
|
||||||
|
|
||||||
# Ensure source 1 is updated, and everything else is as expected
|
# Ensure source 1 is updated, and everything else is as expected
|
||||||
queryset = ManyToManySource.objects.all()
|
queryset = ManyToManySource.objects.all()
|
||||||
|
@ -137,16 +137,15 @@ class HyperlinkedManyToManyTests(TestCase):
|
||||||
{'url': 'http://testserver/manytomanysource/2/', 'name': 'source-2', 'targets': ['http://testserver/manytomanytarget/1/', 'http://testserver/manytomanytarget/2/']},
|
{'url': 'http://testserver/manytomanysource/2/', 'name': 'source-2', 'targets': ['http://testserver/manytomanytarget/1/', 'http://testserver/manytomanytarget/2/']},
|
||||||
{'url': 'http://testserver/manytomanysource/3/', 'name': 'source-3', 'targets': ['http://testserver/manytomanytarget/1/', 'http://testserver/manytomanytarget/2/', 'http://testserver/manytomanytarget/3/']}
|
{'url': 'http://testserver/manytomanysource/3/', 'name': 'source-3', 'targets': ['http://testserver/manytomanytarget/1/', 'http://testserver/manytomanytarget/2/', 'http://testserver/manytomanytarget/3/']}
|
||||||
]
|
]
|
||||||
self.assertEqual(serializer.data, expected)
|
assert serializer.data == expected
|
||||||
|
|
||||||
def test_reverse_many_to_many_update(self):
|
def test_reverse_many_to_many_update(self):
|
||||||
data = {'url': 'http://testserver/manytomanytarget/1/', 'name': 'target-1', 'sources': ['http://testserver/manytomanysource/1/']}
|
data = {'url': 'http://testserver/manytomanytarget/1/', 'name': 'target-1', 'sources': ['http://testserver/manytomanysource/1/']}
|
||||||
instance = ManyToManyTarget.objects.get(pk=1)
|
instance = ManyToManyTarget.objects.get(pk=1)
|
||||||
serializer = ManyToManyTargetSerializer(instance, data=data, context={'request': request})
|
serializer = ManyToManyTargetSerializer(instance, data=data, context={'request': request})
|
||||||
self.assertTrue(serializer.is_valid())
|
assert serializer.is_valid()
|
||||||
serializer.save()
|
serializer.save()
|
||||||
self.assertEqual(serializer.data, data)
|
assert serializer.data == data
|
||||||
|
|
||||||
# Ensure target 1 is updated, and everything else is as expected
|
# Ensure target 1 is updated, and everything else is as expected
|
||||||
queryset = ManyToManyTarget.objects.all()
|
queryset = ManyToManyTarget.objects.all()
|
||||||
serializer = ManyToManyTargetSerializer(queryset, many=True, context={'request': request})
|
serializer = ManyToManyTargetSerializer(queryset, many=True, context={'request': request})
|
||||||
|
@ -156,15 +155,15 @@ class HyperlinkedManyToManyTests(TestCase):
|
||||||
{'url': 'http://testserver/manytomanytarget/3/', 'name': 'target-3', 'sources': ['http://testserver/manytomanysource/3/']}
|
{'url': 'http://testserver/manytomanytarget/3/', 'name': 'target-3', 'sources': ['http://testserver/manytomanysource/3/']}
|
||||||
|
|
||||||
]
|
]
|
||||||
self.assertEqual(serializer.data, expected)
|
assert serializer.data == expected
|
||||||
|
|
||||||
def test_many_to_many_create(self):
|
def test_many_to_many_create(self):
|
||||||
data = {'url': 'http://testserver/manytomanysource/4/', 'name': 'source-4', 'targets': ['http://testserver/manytomanytarget/1/', 'http://testserver/manytomanytarget/3/']}
|
data = {'url': 'http://testserver/manytomanysource/4/', 'name': 'source-4', 'targets': ['http://testserver/manytomanytarget/1/', 'http://testserver/manytomanytarget/3/']}
|
||||||
serializer = ManyToManySourceSerializer(data=data, context={'request': request})
|
serializer = ManyToManySourceSerializer(data=data, context={'request': request})
|
||||||
self.assertTrue(serializer.is_valid())
|
assert serializer.is_valid()
|
||||||
obj = serializer.save()
|
obj = serializer.save()
|
||||||
self.assertEqual(serializer.data, data)
|
assert serializer.data == data
|
||||||
self.assertEqual(obj.name, 'source-4')
|
assert obj.name == 'source-4'
|
||||||
|
|
||||||
# Ensure source 4 is added, and everything else is as expected
|
# Ensure source 4 is added, and everything else is as expected
|
||||||
queryset = ManyToManySource.objects.all()
|
queryset = ManyToManySource.objects.all()
|
||||||
|
@ -175,15 +174,15 @@ class HyperlinkedManyToManyTests(TestCase):
|
||||||
{'url': 'http://testserver/manytomanysource/3/', 'name': 'source-3', 'targets': ['http://testserver/manytomanytarget/1/', 'http://testserver/manytomanytarget/2/', 'http://testserver/manytomanytarget/3/']},
|
{'url': 'http://testserver/manytomanysource/3/', 'name': 'source-3', 'targets': ['http://testserver/manytomanytarget/1/', 'http://testserver/manytomanytarget/2/', 'http://testserver/manytomanytarget/3/']},
|
||||||
{'url': 'http://testserver/manytomanysource/4/', 'name': 'source-4', 'targets': ['http://testserver/manytomanytarget/1/', 'http://testserver/manytomanytarget/3/']}
|
{'url': 'http://testserver/manytomanysource/4/', 'name': 'source-4', 'targets': ['http://testserver/manytomanytarget/1/', 'http://testserver/manytomanytarget/3/']}
|
||||||
]
|
]
|
||||||
self.assertEqual(serializer.data, expected)
|
assert serializer.data == expected
|
||||||
|
|
||||||
def test_reverse_many_to_many_create(self):
|
def test_reverse_many_to_many_create(self):
|
||||||
data = {'url': 'http://testserver/manytomanytarget/4/', 'name': 'target-4', 'sources': ['http://testserver/manytomanysource/1/', 'http://testserver/manytomanysource/3/']}
|
data = {'url': 'http://testserver/manytomanytarget/4/', 'name': 'target-4', 'sources': ['http://testserver/manytomanysource/1/', 'http://testserver/manytomanysource/3/']}
|
||||||
serializer = ManyToManyTargetSerializer(data=data, context={'request': request})
|
serializer = ManyToManyTargetSerializer(data=data, context={'request': request})
|
||||||
self.assertTrue(serializer.is_valid())
|
assert serializer.is_valid()
|
||||||
obj = serializer.save()
|
obj = serializer.save()
|
||||||
self.assertEqual(serializer.data, data)
|
assert serializer.data == data
|
||||||
self.assertEqual(obj.name, 'target-4')
|
assert obj.name == 'target-4'
|
||||||
|
|
||||||
# Ensure target 4 is added, and everything else is as expected
|
# Ensure target 4 is added, and everything else is as expected
|
||||||
queryset = ManyToManyTarget.objects.all()
|
queryset = ManyToManyTarget.objects.all()
|
||||||
|
@ -194,7 +193,7 @@ class HyperlinkedManyToManyTests(TestCase):
|
||||||
{'url': 'http://testserver/manytomanytarget/3/', 'name': 'target-3', 'sources': ['http://testserver/manytomanysource/3/']},
|
{'url': 'http://testserver/manytomanytarget/3/', 'name': 'target-3', 'sources': ['http://testserver/manytomanysource/3/']},
|
||||||
{'url': 'http://testserver/manytomanytarget/4/', 'name': 'target-4', 'sources': ['http://testserver/manytomanysource/1/', 'http://testserver/manytomanysource/3/']}
|
{'url': 'http://testserver/manytomanytarget/4/', 'name': 'target-4', 'sources': ['http://testserver/manytomanysource/1/', 'http://testserver/manytomanysource/3/']}
|
||||||
]
|
]
|
||||||
self.assertEqual(serializer.data, expected)
|
assert serializer.data == expected
|
||||||
|
|
||||||
|
|
||||||
@override_settings(ROOT_URLCONF='tests.test_relations_hyperlink')
|
@override_settings(ROOT_URLCONF='tests.test_relations_hyperlink')
|
||||||
|
@ -217,7 +216,7 @@ class HyperlinkedForeignKeyTests(TestCase):
|
||||||
{'url': 'http://testserver/foreignkeysource/3/', 'name': 'source-3', 'target': 'http://testserver/foreignkeytarget/1/'}
|
{'url': 'http://testserver/foreignkeysource/3/', 'name': 'source-3', 'target': 'http://testserver/foreignkeytarget/1/'}
|
||||||
]
|
]
|
||||||
with self.assertNumQueries(1):
|
with self.assertNumQueries(1):
|
||||||
self.assertEqual(serializer.data, expected)
|
assert serializer.data == expected
|
||||||
|
|
||||||
def test_reverse_foreign_key_retrieve(self):
|
def test_reverse_foreign_key_retrieve(self):
|
||||||
queryset = ForeignKeyTarget.objects.all()
|
queryset = ForeignKeyTarget.objects.all()
|
||||||
|
@ -227,15 +226,15 @@ class HyperlinkedForeignKeyTests(TestCase):
|
||||||
{'url': 'http://testserver/foreignkeytarget/2/', 'name': 'target-2', 'sources': []},
|
{'url': 'http://testserver/foreignkeytarget/2/', 'name': 'target-2', 'sources': []},
|
||||||
]
|
]
|
||||||
with self.assertNumQueries(3):
|
with self.assertNumQueries(3):
|
||||||
self.assertEqual(serializer.data, expected)
|
assert serializer.data == expected
|
||||||
|
|
||||||
def test_foreign_key_update(self):
|
def test_foreign_key_update(self):
|
||||||
data = {'url': 'http://testserver/foreignkeysource/1/', 'name': 'source-1', 'target': 'http://testserver/foreignkeytarget/2/'}
|
data = {'url': 'http://testserver/foreignkeysource/1/', 'name': 'source-1', 'target': 'http://testserver/foreignkeytarget/2/'}
|
||||||
instance = ForeignKeySource.objects.get(pk=1)
|
instance = ForeignKeySource.objects.get(pk=1)
|
||||||
serializer = ForeignKeySourceSerializer(instance, data=data, context={'request': request})
|
serializer = ForeignKeySourceSerializer(instance, data=data, context={'request': request})
|
||||||
self.assertTrue(serializer.is_valid())
|
assert serializer.is_valid()
|
||||||
serializer.save()
|
serializer.save()
|
||||||
self.assertEqual(serializer.data, data)
|
assert serializer.data == data
|
||||||
|
|
||||||
# Ensure source 1 is updated, and everything else is as expected
|
# Ensure source 1 is updated, and everything else is as expected
|
||||||
queryset = ForeignKeySource.objects.all()
|
queryset = ForeignKeySource.objects.all()
|
||||||
|
@ -245,20 +244,20 @@ class HyperlinkedForeignKeyTests(TestCase):
|
||||||
{'url': 'http://testserver/foreignkeysource/2/', 'name': 'source-2', 'target': 'http://testserver/foreignkeytarget/1/'},
|
{'url': 'http://testserver/foreignkeysource/2/', 'name': 'source-2', 'target': 'http://testserver/foreignkeytarget/1/'},
|
||||||
{'url': 'http://testserver/foreignkeysource/3/', 'name': 'source-3', 'target': 'http://testserver/foreignkeytarget/1/'}
|
{'url': 'http://testserver/foreignkeysource/3/', 'name': 'source-3', 'target': 'http://testserver/foreignkeytarget/1/'}
|
||||||
]
|
]
|
||||||
self.assertEqual(serializer.data, expected)
|
assert serializer.data == expected
|
||||||
|
|
||||||
def test_foreign_key_update_incorrect_type(self):
|
def test_foreign_key_update_incorrect_type(self):
|
||||||
data = {'url': 'http://testserver/foreignkeysource/1/', 'name': 'source-1', 'target': 2}
|
data = {'url': 'http://testserver/foreignkeysource/1/', 'name': 'source-1', 'target': 2}
|
||||||
instance = ForeignKeySource.objects.get(pk=1)
|
instance = ForeignKeySource.objects.get(pk=1)
|
||||||
serializer = ForeignKeySourceSerializer(instance, data=data, context={'request': request})
|
serializer = ForeignKeySourceSerializer(instance, data=data, context={'request': request})
|
||||||
self.assertFalse(serializer.is_valid())
|
assert not serializer.is_valid()
|
||||||
self.assertEqual(serializer.errors, {'target': ['Incorrect type. Expected URL string, received int.']})
|
assert serializer.errors == {'target': ['Incorrect type. Expected URL string, received int.']}
|
||||||
|
|
||||||
def test_reverse_foreign_key_update(self):
|
def test_reverse_foreign_key_update(self):
|
||||||
data = {'url': 'http://testserver/foreignkeytarget/2/', 'name': 'target-2', 'sources': ['http://testserver/foreignkeysource/1/', 'http://testserver/foreignkeysource/3/']}
|
data = {'url': 'http://testserver/foreignkeytarget/2/', 'name': 'target-2', 'sources': ['http://testserver/foreignkeysource/1/', 'http://testserver/foreignkeysource/3/']}
|
||||||
instance = ForeignKeyTarget.objects.get(pk=2)
|
instance = ForeignKeyTarget.objects.get(pk=2)
|
||||||
serializer = ForeignKeyTargetSerializer(instance, data=data, context={'request': request})
|
serializer = ForeignKeyTargetSerializer(instance, data=data, context={'request': request})
|
||||||
self.assertTrue(serializer.is_valid())
|
assert serializer.is_valid()
|
||||||
# We shouldn't have saved anything to the db yet since save
|
# We shouldn't have saved anything to the db yet since save
|
||||||
# hasn't been called.
|
# hasn't been called.
|
||||||
queryset = ForeignKeyTarget.objects.all()
|
queryset = ForeignKeyTarget.objects.all()
|
||||||
|
@ -267,10 +266,10 @@ class HyperlinkedForeignKeyTests(TestCase):
|
||||||
{'url': 'http://testserver/foreignkeytarget/1/', 'name': 'target-1', 'sources': ['http://testserver/foreignkeysource/1/', 'http://testserver/foreignkeysource/2/', 'http://testserver/foreignkeysource/3/']},
|
{'url': 'http://testserver/foreignkeytarget/1/', 'name': 'target-1', 'sources': ['http://testserver/foreignkeysource/1/', 'http://testserver/foreignkeysource/2/', 'http://testserver/foreignkeysource/3/']},
|
||||||
{'url': 'http://testserver/foreignkeytarget/2/', 'name': 'target-2', 'sources': []},
|
{'url': 'http://testserver/foreignkeytarget/2/', 'name': 'target-2', 'sources': []},
|
||||||
]
|
]
|
||||||
self.assertEqual(new_serializer.data, expected)
|
assert new_serializer.data == expected
|
||||||
|
|
||||||
serializer.save()
|
serializer.save()
|
||||||
self.assertEqual(serializer.data, data)
|
assert serializer.data == data
|
||||||
|
|
||||||
# Ensure target 2 is update, and everything else is as expected
|
# Ensure target 2 is update, and everything else is as expected
|
||||||
queryset = ForeignKeyTarget.objects.all()
|
queryset = ForeignKeyTarget.objects.all()
|
||||||
|
@ -279,15 +278,15 @@ class HyperlinkedForeignKeyTests(TestCase):
|
||||||
{'url': 'http://testserver/foreignkeytarget/1/', 'name': 'target-1', 'sources': ['http://testserver/foreignkeysource/2/']},
|
{'url': 'http://testserver/foreignkeytarget/1/', 'name': 'target-1', 'sources': ['http://testserver/foreignkeysource/2/']},
|
||||||
{'url': 'http://testserver/foreignkeytarget/2/', 'name': 'target-2', 'sources': ['http://testserver/foreignkeysource/1/', 'http://testserver/foreignkeysource/3/']},
|
{'url': 'http://testserver/foreignkeytarget/2/', 'name': 'target-2', 'sources': ['http://testserver/foreignkeysource/1/', 'http://testserver/foreignkeysource/3/']},
|
||||||
]
|
]
|
||||||
self.assertEqual(serializer.data, expected)
|
assert serializer.data == expected
|
||||||
|
|
||||||
def test_foreign_key_create(self):
|
def test_foreign_key_create(self):
|
||||||
data = {'url': 'http://testserver/foreignkeysource/4/', 'name': 'source-4', 'target': 'http://testserver/foreignkeytarget/2/'}
|
data = {'url': 'http://testserver/foreignkeysource/4/', 'name': 'source-4', 'target': 'http://testserver/foreignkeytarget/2/'}
|
||||||
serializer = ForeignKeySourceSerializer(data=data, context={'request': request})
|
serializer = ForeignKeySourceSerializer(data=data, context={'request': request})
|
||||||
self.assertTrue(serializer.is_valid())
|
assert serializer.is_valid()
|
||||||
obj = serializer.save()
|
obj = serializer.save()
|
||||||
self.assertEqual(serializer.data, data)
|
assert serializer.data == data
|
||||||
self.assertEqual(obj.name, 'source-4')
|
assert obj.name == 'source-4'
|
||||||
|
|
||||||
# Ensure source 1 is updated, and everything else is as expected
|
# Ensure source 1 is updated, and everything else is as expected
|
||||||
queryset = ForeignKeySource.objects.all()
|
queryset = ForeignKeySource.objects.all()
|
||||||
|
@ -298,15 +297,15 @@ class HyperlinkedForeignKeyTests(TestCase):
|
||||||
{'url': 'http://testserver/foreignkeysource/3/', 'name': 'source-3', 'target': 'http://testserver/foreignkeytarget/1/'},
|
{'url': 'http://testserver/foreignkeysource/3/', 'name': 'source-3', 'target': 'http://testserver/foreignkeytarget/1/'},
|
||||||
{'url': 'http://testserver/foreignkeysource/4/', 'name': 'source-4', 'target': 'http://testserver/foreignkeytarget/2/'},
|
{'url': 'http://testserver/foreignkeysource/4/', 'name': 'source-4', 'target': 'http://testserver/foreignkeytarget/2/'},
|
||||||
]
|
]
|
||||||
self.assertEqual(serializer.data, expected)
|
assert serializer.data == expected
|
||||||
|
|
||||||
def test_reverse_foreign_key_create(self):
|
def test_reverse_foreign_key_create(self):
|
||||||
data = {'url': 'http://testserver/foreignkeytarget/3/', 'name': 'target-3', 'sources': ['http://testserver/foreignkeysource/1/', 'http://testserver/foreignkeysource/3/']}
|
data = {'url': 'http://testserver/foreignkeytarget/3/', 'name': 'target-3', 'sources': ['http://testserver/foreignkeysource/1/', 'http://testserver/foreignkeysource/3/']}
|
||||||
serializer = ForeignKeyTargetSerializer(data=data, context={'request': request})
|
serializer = ForeignKeyTargetSerializer(data=data, context={'request': request})
|
||||||
self.assertTrue(serializer.is_valid())
|
assert serializer.is_valid()
|
||||||
obj = serializer.save()
|
obj = serializer.save()
|
||||||
self.assertEqual(serializer.data, data)
|
assert serializer.data == data
|
||||||
self.assertEqual(obj.name, 'target-3')
|
assert obj.name == 'target-3'
|
||||||
|
|
||||||
# Ensure target 4 is added, and everything else is as expected
|
# Ensure target 4 is added, and everything else is as expected
|
||||||
queryset = ForeignKeyTarget.objects.all()
|
queryset = ForeignKeyTarget.objects.all()
|
||||||
|
@ -316,14 +315,14 @@ class HyperlinkedForeignKeyTests(TestCase):
|
||||||
{'url': 'http://testserver/foreignkeytarget/2/', 'name': 'target-2', 'sources': []},
|
{'url': 'http://testserver/foreignkeytarget/2/', 'name': 'target-2', 'sources': []},
|
||||||
{'url': 'http://testserver/foreignkeytarget/3/', 'name': 'target-3', 'sources': ['http://testserver/foreignkeysource/1/', 'http://testserver/foreignkeysource/3/']},
|
{'url': 'http://testserver/foreignkeytarget/3/', 'name': 'target-3', 'sources': ['http://testserver/foreignkeysource/1/', 'http://testserver/foreignkeysource/3/']},
|
||||||
]
|
]
|
||||||
self.assertEqual(serializer.data, expected)
|
assert serializer.data == expected
|
||||||
|
|
||||||
def test_foreign_key_update_with_invalid_null(self):
|
def test_foreign_key_update_with_invalid_null(self):
|
||||||
data = {'url': 'http://testserver/foreignkeysource/1/', 'name': 'source-1', 'target': None}
|
data = {'url': 'http://testserver/foreignkeysource/1/', 'name': 'source-1', 'target': None}
|
||||||
instance = ForeignKeySource.objects.get(pk=1)
|
instance = ForeignKeySource.objects.get(pk=1)
|
||||||
serializer = ForeignKeySourceSerializer(instance, data=data, context={'request': request})
|
serializer = ForeignKeySourceSerializer(instance, data=data, context={'request': request})
|
||||||
self.assertFalse(serializer.is_valid())
|
assert not serializer.is_valid()
|
||||||
self.assertEqual(serializer.errors, {'target': ['This field may not be null.']})
|
assert serializer.errors == {'target': ['This field may not be null.']}
|
||||||
|
|
||||||
|
|
||||||
@override_settings(ROOT_URLCONF='tests.test_relations_hyperlink')
|
@override_settings(ROOT_URLCONF='tests.test_relations_hyperlink')
|
||||||
|
@ -345,15 +344,15 @@ class HyperlinkedNullableForeignKeyTests(TestCase):
|
||||||
{'url': 'http://testserver/nullableforeignkeysource/2/', 'name': 'source-2', 'target': 'http://testserver/foreignkeytarget/1/'},
|
{'url': 'http://testserver/nullableforeignkeysource/2/', 'name': 'source-2', 'target': 'http://testserver/foreignkeytarget/1/'},
|
||||||
{'url': 'http://testserver/nullableforeignkeysource/3/', 'name': 'source-3', 'target': None},
|
{'url': 'http://testserver/nullableforeignkeysource/3/', 'name': 'source-3', 'target': None},
|
||||||
]
|
]
|
||||||
self.assertEqual(serializer.data, expected)
|
assert serializer.data == expected
|
||||||
|
|
||||||
def test_foreign_key_create_with_valid_null(self):
|
def test_foreign_key_create_with_valid_null(self):
|
||||||
data = {'url': 'http://testserver/nullableforeignkeysource/4/', 'name': 'source-4', 'target': None}
|
data = {'url': 'http://testserver/nullableforeignkeysource/4/', 'name': 'source-4', 'target': None}
|
||||||
serializer = NullableForeignKeySourceSerializer(data=data, context={'request': request})
|
serializer = NullableForeignKeySourceSerializer(data=data, context={'request': request})
|
||||||
self.assertTrue(serializer.is_valid())
|
assert serializer.is_valid()
|
||||||
obj = serializer.save()
|
obj = serializer.save()
|
||||||
self.assertEqual(serializer.data, data)
|
assert serializer.data == data
|
||||||
self.assertEqual(obj.name, 'source-4')
|
assert obj.name == 'source-4'
|
||||||
|
|
||||||
# Ensure source 4 is created, and everything else is as expected
|
# Ensure source 4 is created, and everything else is as expected
|
||||||
queryset = NullableForeignKeySource.objects.all()
|
queryset = NullableForeignKeySource.objects.all()
|
||||||
|
@ -364,7 +363,7 @@ class HyperlinkedNullableForeignKeyTests(TestCase):
|
||||||
{'url': 'http://testserver/nullableforeignkeysource/3/', 'name': 'source-3', 'target': None},
|
{'url': 'http://testserver/nullableforeignkeysource/3/', 'name': 'source-3', 'target': None},
|
||||||
{'url': 'http://testserver/nullableforeignkeysource/4/', 'name': 'source-4', 'target': None}
|
{'url': 'http://testserver/nullableforeignkeysource/4/', 'name': 'source-4', 'target': None}
|
||||||
]
|
]
|
||||||
self.assertEqual(serializer.data, expected)
|
assert serializer.data == expected
|
||||||
|
|
||||||
def test_foreign_key_create_with_valid_emptystring(self):
|
def test_foreign_key_create_with_valid_emptystring(self):
|
||||||
"""
|
"""
|
||||||
|
@ -374,10 +373,10 @@ class HyperlinkedNullableForeignKeyTests(TestCase):
|
||||||
data = {'url': 'http://testserver/nullableforeignkeysource/4/', 'name': 'source-4', 'target': ''}
|
data = {'url': 'http://testserver/nullableforeignkeysource/4/', 'name': 'source-4', 'target': ''}
|
||||||
expected_data = {'url': 'http://testserver/nullableforeignkeysource/4/', 'name': 'source-4', 'target': None}
|
expected_data = {'url': 'http://testserver/nullableforeignkeysource/4/', 'name': 'source-4', 'target': None}
|
||||||
serializer = NullableForeignKeySourceSerializer(data=data, context={'request': request})
|
serializer = NullableForeignKeySourceSerializer(data=data, context={'request': request})
|
||||||
self.assertTrue(serializer.is_valid())
|
assert serializer.is_valid()
|
||||||
obj = serializer.save()
|
obj = serializer.save()
|
||||||
self.assertEqual(serializer.data, expected_data)
|
assert serializer.data == expected_data
|
||||||
self.assertEqual(obj.name, 'source-4')
|
assert obj.name == 'source-4'
|
||||||
|
|
||||||
# Ensure source 4 is created, and everything else is as expected
|
# Ensure source 4 is created, and everything else is as expected
|
||||||
queryset = NullableForeignKeySource.objects.all()
|
queryset = NullableForeignKeySource.objects.all()
|
||||||
|
@ -388,15 +387,15 @@ class HyperlinkedNullableForeignKeyTests(TestCase):
|
||||||
{'url': 'http://testserver/nullableforeignkeysource/3/', 'name': 'source-3', 'target': None},
|
{'url': 'http://testserver/nullableforeignkeysource/3/', 'name': 'source-3', 'target': None},
|
||||||
{'url': 'http://testserver/nullableforeignkeysource/4/', 'name': 'source-4', 'target': None}
|
{'url': 'http://testserver/nullableforeignkeysource/4/', 'name': 'source-4', 'target': None}
|
||||||
]
|
]
|
||||||
self.assertEqual(serializer.data, expected)
|
assert serializer.data == expected
|
||||||
|
|
||||||
def test_foreign_key_update_with_valid_null(self):
|
def test_foreign_key_update_with_valid_null(self):
|
||||||
data = {'url': 'http://testserver/nullableforeignkeysource/1/', 'name': 'source-1', 'target': None}
|
data = {'url': 'http://testserver/nullableforeignkeysource/1/', 'name': 'source-1', 'target': None}
|
||||||
instance = NullableForeignKeySource.objects.get(pk=1)
|
instance = NullableForeignKeySource.objects.get(pk=1)
|
||||||
serializer = NullableForeignKeySourceSerializer(instance, data=data, context={'request': request})
|
serializer = NullableForeignKeySourceSerializer(instance, data=data, context={'request': request})
|
||||||
self.assertTrue(serializer.is_valid())
|
assert serializer.is_valid()
|
||||||
serializer.save()
|
serializer.save()
|
||||||
self.assertEqual(serializer.data, data)
|
assert serializer.data == data
|
||||||
|
|
||||||
# Ensure source 1 is updated, and everything else is as expected
|
# Ensure source 1 is updated, and everything else is as expected
|
||||||
queryset = NullableForeignKeySource.objects.all()
|
queryset = NullableForeignKeySource.objects.all()
|
||||||
|
@ -406,7 +405,7 @@ class HyperlinkedNullableForeignKeyTests(TestCase):
|
||||||
{'url': 'http://testserver/nullableforeignkeysource/2/', 'name': 'source-2', 'target': 'http://testserver/foreignkeytarget/1/'},
|
{'url': 'http://testserver/nullableforeignkeysource/2/', 'name': 'source-2', 'target': 'http://testserver/foreignkeytarget/1/'},
|
||||||
{'url': 'http://testserver/nullableforeignkeysource/3/', 'name': 'source-3', 'target': None},
|
{'url': 'http://testserver/nullableforeignkeysource/3/', 'name': 'source-3', 'target': None},
|
||||||
]
|
]
|
||||||
self.assertEqual(serializer.data, expected)
|
assert serializer.data == expected
|
||||||
|
|
||||||
def test_foreign_key_update_with_valid_emptystring(self):
|
def test_foreign_key_update_with_valid_emptystring(self):
|
||||||
"""
|
"""
|
||||||
|
@ -417,9 +416,9 @@ class HyperlinkedNullableForeignKeyTests(TestCase):
|
||||||
expected_data = {'url': 'http://testserver/nullableforeignkeysource/1/', 'name': 'source-1', 'target': None}
|
expected_data = {'url': 'http://testserver/nullableforeignkeysource/1/', 'name': 'source-1', 'target': None}
|
||||||
instance = NullableForeignKeySource.objects.get(pk=1)
|
instance = NullableForeignKeySource.objects.get(pk=1)
|
||||||
serializer = NullableForeignKeySourceSerializer(instance, data=data, context={'request': request})
|
serializer = NullableForeignKeySourceSerializer(instance, data=data, context={'request': request})
|
||||||
self.assertTrue(serializer.is_valid())
|
assert serializer.is_valid()
|
||||||
serializer.save()
|
serializer.save()
|
||||||
self.assertEqual(serializer.data, expected_data)
|
assert serializer.data == expected_data
|
||||||
|
|
||||||
# Ensure source 1 is updated, and everything else is as expected
|
# Ensure source 1 is updated, and everything else is as expected
|
||||||
queryset = NullableForeignKeySource.objects.all()
|
queryset = NullableForeignKeySource.objects.all()
|
||||||
|
@ -429,7 +428,7 @@ class HyperlinkedNullableForeignKeyTests(TestCase):
|
||||||
{'url': 'http://testserver/nullableforeignkeysource/2/', 'name': 'source-2', 'target': 'http://testserver/foreignkeytarget/1/'},
|
{'url': 'http://testserver/nullableforeignkeysource/2/', 'name': 'source-2', 'target': 'http://testserver/foreignkeytarget/1/'},
|
||||||
{'url': 'http://testserver/nullableforeignkeysource/3/', 'name': 'source-3', 'target': None},
|
{'url': 'http://testserver/nullableforeignkeysource/3/', 'name': 'source-3', 'target': None},
|
||||||
]
|
]
|
||||||
self.assertEqual(serializer.data, expected)
|
assert serializer.data == expected
|
||||||
|
|
||||||
|
|
||||||
@override_settings(ROOT_URLCONF='tests.test_relations_hyperlink')
|
@override_settings(ROOT_URLCONF='tests.test_relations_hyperlink')
|
||||||
|
@ -449,4 +448,4 @@ class HyperlinkedNullableOneToOneTests(TestCase):
|
||||||
{'url': 'http://testserver/onetoonetarget/1/', 'name': 'target-1', 'nullable_source': 'http://testserver/nullableonetoonesource/1/'},
|
{'url': 'http://testserver/onetoonetarget/1/', 'name': 'target-1', 'nullable_source': 'http://testserver/nullableonetoonesource/1/'},
|
||||||
{'url': 'http://testserver/onetoonetarget/2/', 'name': 'target-2', 'nullable_source': None},
|
{'url': 'http://testserver/onetoonetarget/2/', 'name': 'target-2', 'nullable_source': None},
|
||||||
]
|
]
|
||||||
self.assertEqual(serializer.data, expected)
|
assert serializer.data == expected
|
||||||
|
|
Loading…
Reference in New Issue
Block a user