aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site
diff options
context:
space:
mode:
authorGravatar MarkKoz <[email protected]>2019-12-18 20:59:16 -0800
committerGravatar MarkKoz <[email protected]>2019-12-18 21:06:03 -0800
commita0ea44f5eba9c6d3e03b48c4c28e9704da5b0788 (patch)
treed34bbf572a1d20e411f891b5cd06cf3f4a7d98a3 /pydis_site
parentAdd 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.
Diffstat (limited to 'pydis_site')
-rw-r--r--pydis_site/apps/api/tests/test_infractions.py34
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):