test_ban_model.py 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. from django.test import TestCase
  2. from ..models import Ban
  3. class BansManagerTests(TestCase):
  4. def setUp(self):
  5. Ban.objects.bulk_create(
  6. [
  7. Ban(check_type=Ban.USERNAME, banned_value="user"),
  8. Ban(check_type=Ban.EMAIL, banned_value="user@example.com"),
  9. Ban(check_type=Ban.IP, banned_value="127.0.0.1"),
  10. ]
  11. )
  12. def test_get_ban_for_banned_name(self):
  13. """get_ban finds ban for given username"""
  14. self.assertIsNotNone(Ban.objects.get_ban(username="User"))
  15. with self.assertRaises(Ban.DoesNotExist):
  16. Ban.objects.get_ban(username="OtherUser")
  17. def test_get_ban_for_banned_email(self):
  18. """get_ban finds ban for given email"""
  19. self.assertIsNotNone(Ban.objects.get_ban(email="user@example.com"))
  20. with self.assertRaises(Ban.DoesNotExist):
  21. Ban.objects.get_ban(email="otheruser@example.com")
  22. def test_get_ban_for_banned_ip(self):
  23. """get_ban finds ban for given ip"""
  24. self.assertIsNotNone(Ban.objects.get_ban(ip="127.0.0.1"))
  25. with self.assertRaises(Ban.DoesNotExist):
  26. Ban.objects.get_ban(ip="42.0.0.1")
  27. def test_get_ban_for_all_values(self):
  28. """get_ban finds ban for given values"""
  29. valid_kwargs = {"username": "User", "ip": "42.51.52.51"}
  30. self.assertIsNotNone(Ban.objects.get_ban(**valid_kwargs))
  31. invalid_kwargs = {"username": "OtherUser", "ip": "42.51.52.51"}
  32. with self.assertRaises(Ban.DoesNotExist):
  33. Ban.objects.get_ban(**invalid_kwargs)
  34. class BanTests(TestCase):
  35. def test_check_value_literal(self):
  36. """ban correctly tests given values"""
  37. test_ban = Ban(banned_value="user")
  38. self.assertTrue(test_ban.check_value("User"))
  39. self.assertFalse(test_ban.check_value("OtherUser"))
  40. self.assertFalse(test_ban.check_value("UserOther"))
  41. def test_check_value_starts_with(self):
  42. """ban correctly tests given values"""
  43. test_ban = Ban(banned_value="user*")
  44. self.assertTrue(test_ban.check_value("User"))
  45. self.assertTrue(test_ban.check_value("UserOther"))
  46. self.assertFalse(test_ban.check_value("NewUser"))
  47. def test_check_value_middle_match(self):
  48. """ban correctly tests given values"""
  49. test_ban = Ban(banned_value="u*r")
  50. self.assertTrue(test_ban.check_value("User"))
  51. self.assertTrue(test_ban.check_value("UserOther"))
  52. self.assertFalse(test_ban.check_value("NewUser"))
  53. self.assertFalse(test_ban.check_value("UserNew"))
  54. def test_check_value_ends_witch(self):
  55. """ban correctly tests given values"""
  56. test_ban = Ban(banned_value="*user")
  57. self.assertTrue(test_ban.check_value("User"))
  58. self.assertTrue(test_ban.check_value("OtherUser"))
  59. self.assertFalse(test_ban.check_value("UserOther"))