test_user_data_validation.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. from ...users.models import Ban
  2. from ..validators import UserDataValidator
  3. def test_valid_data_passess_validation(db):
  4. validator = UserDataValidator(
  5. {"id": 1, "username": "User", "email": "user@example.com"}
  6. )
  7. assert validator.is_valid()
  8. assert "id" not in validator.errors
  9. assert "username" not in validator.errors
  10. assert "email" not in validator.errors
  11. def test_invalid_id_fails_validation(db):
  12. validator = UserDataValidator(
  13. {"id": "invalid", "username": "User", "email": "user@example.com"}
  14. )
  15. assert not validator.is_valid()
  16. assert list(validator.errors) == ["id"]
  17. def test_invalid_username_fails_validation(db):
  18. validator = UserDataValidator(
  19. {"id": 1, "username": "User!", "email": "user@example.com"}
  20. )
  21. assert not validator.is_valid()
  22. assert list(validator.errors) == ["username"]
  23. def test_banned_username_fails_validation(db):
  24. Ban.objects.create(check_type=Ban.USERNAME, banned_value="User")
  25. validator = UserDataValidator(
  26. {"id": 1, "username": "User", "email": "user@example.com"}
  27. )
  28. assert not validator.is_valid()
  29. assert list(validator.errors) == ["username"]
  30. def test_invalid_email_fails_validation(db):
  31. validator = UserDataValidator({"id": 1, "username": "User", "email": "invalid"})
  32. assert not validator.is_valid()
  33. assert list(validator.errors) == ["email"]
  34. def test_banned_email_fails_validation(db):
  35. Ban.objects.create(check_type=Ban.EMAIL, banned_value="user@example.com")
  36. validator = UserDataValidator(
  37. {"id": 1, "username": "User", "email": "user@example.com"}
  38. )
  39. assert not validator.is_valid()
  40. assert list(validator.errors) == ["email"]
  41. def test_is_active_flag_can_be_included_in_data(db):
  42. validator = UserDataValidator(
  43. {"id": 1, "username": "User", "email": "user@example.com", "is_active": True}
  44. )
  45. assert validator.is_valid()
  46. assert validator.cleaned_data["is_active"] is True