diff options
author | 2019-12-18 20:59:16 -0800 | |
---|---|---|
committer | 2019-12-18 21:06:03 -0800 | |
commit | a0ea44f5eba9c6d3e03b48c4c28e9704da5b0788 (patch) | |
tree | d34bbf572a1d20e411f891b5cd06cf3f4a7d98a3 | |
parent | Add regression test for the UniqueTogetherValidator fix (diff) |
Add fixtures to create infractions in serializer tests
The fixtures are invoked manually because not all cases may need the
same infractions.
-rw-r--r-- | pydis_site/apps/api/tests/test_infractions.py | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/pydis_site/apps/api/tests/test_infractions.py b/pydis_site/apps/api/tests/test_infractions.py index e79bc2dc..cacd4d06 100644 --- a/pydis_site/apps/api/tests/test_infractions.py +++ b/pydis_site/apps/api/tests/test_infractions.py @@ -575,37 +575,39 @@ class ExpandedTests(APISubdomainTestCase): class SerializerTests(APISubdomainTestCase): @classmethod - def setUpTestData(cls): # noqa + def setUpTestData(cls): cls.user = User.objects.create( id=5, name='james', discriminator=1, avatar_hash=None ) - cls.ban_active = Infraction.objects.create( - user_id=cls.user.id, - actor_id=cls.user.id, - type='ban', - reason='He terk my jerb!', - expires_at=dt(5018, 11, 20, 15, 52, tzinfo=timezone.utc) - ) - cls.ban_inactive = Infraction.objects.create( - user_id=cls.user.id, - actor_id=cls.user.id, - type='ban', - reason='James is an ass, and we won\'t be working with him again.', - active=False + + def create_infraction(self, _type: str, active: bool): + return Infraction.objects.create( + user_id=self.user.id, + actor_id=self.user.id, + type=_type, + reason='A reason.', + expires_at=dt(5018, 11, 20, 15, 52, tzinfo=timezone.utc), + active=active ) def test_is_valid_if_active_infraction_with_same_fields_exists(self): + self.create_infraction('ban', active=True) + instance = self.create_infraction('ban', active=False) + data = {'reason': 'hello'} - serializer = InfractionSerializer(self.ban_inactive, data=data, partial=True) + serializer = InfractionSerializer(instance, data=data, partial=True) self.assertTrue(serializer.is_valid()) def test_validation_error_if_active_duplicate(self): + self.create_infraction('ban', active=True) + instance = self.create_infraction('ban', active=False) + data = {'active': True} - serializer = InfractionSerializer(self.ban_inactive, data=data, partial=True) + serializer = InfractionSerializer(instance, data=data, partial=True) msg = 'This user already has an active infraction of this type' with self.assertRaisesRegex(ValidationError, msg): |