def test_add_existing_email_host_in_database(self): """ Test that checking if correctly we cannot add an existing email host in our database. """ new_email_host_entry = models.EmailHostEntry( entry_value=self.lower_case_blacklisted_host) self.assertRaises(IntegrityError, lambda: new_email_host_entry.save())
def post(self, request, format=None): serializer = BlacklistResourceSerializer(data=request.data, many=True) serializer.is_valid(raise_exception=True) for entry in serializer.validated_data: if entry["kind"] == "ip": try: ip_entry = models.IPEntry(entry_value=entry["value"], reason=entry["reason"]) ip_entry.save() except IntegrityError: return Response(status=409) elif entry["kind"] == "email": try: email_entry = models.EmailEntry(entry_value=entry["value"], reason=entry["reason"]) email_entry.save() except IntegrityError: return Response(status=409) elif entry["kind"] == "email_host": try: host_entry = models.EmailHostEntry( entry_value=entry["value"], reason=entry["reason"]) host_entry.save() except IntegrityError: return Response(status=409) return Response(serializer.validated_data, status=201)
def setUpClass(cls): super().setUpClass() cls.lower_case_blacklisted_ip = "2001:0:3238:dfe1:63::fefb" cls.not_blacklisted_ip = "255.254.253.251" cls.lower_case_blacklisted_email = "*****@*****.**" cls.not_blacklisted_email = "*****@*****.**" cls.lower_case_blacklisted_host = "spam.com" cls.not_blacklisted_host = "test.com" cls.upper_case_blacklisted_email = "*****@*****.**" ip_entry = models.IPEntry(entry_value=cls.lower_case_blacklisted_ip) ip_entry.save() email_entry = models.EmailEntry( entry_value=cls.lower_case_blacklisted_email) email_entry.save() host_entry = models.EmailHostEntry( entry_value=cls.lower_case_blacklisted_host) host_entry.save() upper_case_email_entry = models.EmailEntry( entry_value=cls.upper_case_blacklisted_email) upper_case_email_entry.save()
def setUpClass(cls): super().setUpClass() cls.lower_case_blacklisted_ip = "2001:0:3238:dfe1:63::fefb" cls.not_blacklisted_ip = "255.254.253.251" cls.lower_case_blacklisted_email = "*****@*****.**" cls.not_blacklisted_email = "*****@*****.**" cls.lower_case_blacklisted_host = "spam.com" cls.not_blacklisted_host = "test.com" cls.upper_case_blacklisted_email = "*****@*****.**" ip_entry = models.IPEntry(entry_value=cls.lower_case_blacklisted_ip) ip_entry.save() email_entry = models.EmailEntry( entry_value=cls.lower_case_blacklisted_email) email_entry.save() host_entry = models.EmailHostEntry( entry_value=cls.lower_case_blacklisted_host) host_entry.save() upper_case_email_entry = models.EmailEntry( entry_value=cls.upper_case_blacklisted_email) upper_case_email_entry.save() unauthorized_user = User(username="******") unauthorized_user.save() unauthorized_token = AuthToken(user=unauthorized_user) unauthorized_token.save() authorized_user = User(username="******") authorized_user.save() content_type = ContentType.objects.get_for_model(models.IPEntry) view_ip_permission = Permission.objects.get(content_type=content_type, codename="view_ipentry") add_ip_permission = Permission.objects.get(content_type=content_type, codename="add_ipentry") content_type = ContentType.objects.get_for_model(models.EmailEntry) view_email_permission = Permission.objects.get( content_type=content_type, codename="view_emailentry") add_email_permission = Permission.objects.get( content_type=content_type, codename="add_emailentry") content_type = ContentType.objects.get_for_model(models.EmailHostEntry) view_emailhost_permission = Permission.objects.get( content_type=content_type, codename="view_emailhostentry") add_emailhost_permission = Permission.objects.get( content_type=content_type, codename="add_emailhostentry") authorized_user.user_permissions.add( view_ip_permission, view_email_permission, view_emailhost_permission, add_ip_permission, add_email_permission, add_emailhost_permission, ) authorized_token = AuthToken(user=authorized_user) authorized_token.save() one_permission_user = User(username="******") one_permission_user.save() one_permission_user.user_permissions.add(view_ip_permission) one_permission_token = AuthToken(user=one_permission_user) one_permission_token.save() cls.authenticated_client = APIClient() cls.authenticated_client.credentials( HTTP_AUTHORIZATION=f"Token {unauthorized_token.key}") cls.authorized_client = APIClient() cls.authorized_client.credentials( HTTP_AUTHORIZATION=f"Token {authorized_token.key}") cls.unauthenticated_client = APIClient() cls.one_permission_client = APIClient() cls.one_permission_client.credentials( HTTP_AUTHORIZATION=f"Token {one_permission_token}")