test_ban_model.py 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. from django.test import TestCase
  2. from misago.users.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="bob"),
  8. Ban(check_type=Ban.EMAIL, banned_value="bob@test.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="Bob"))
  15. with self.assertRaises(Ban.DoesNotExist):
  16. Ban.objects.get_ban(username="Jeb")
  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="bob@test.com"))
  20. with self.assertRaises(Ban.DoesNotExist):
  21. Ban.objects.get_ban(email="jeb@test.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_bans(self):
  28. """get_ban finds ban for given values"""
  29. valid_kwargs = {"username": "bob", "ip": "42.51.52.51"}
  30. self.assertIsNotNone(Ban.objects.get_ban(**valid_kwargs))
  31. invalid_kwargs = {"username": "bsob", "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="bob")
  38. self.assertTrue(test_ban.check_value("bob"))
  39. self.assertFalse(test_ban.check_value("bobby"))
  40. def test_check_value_starts_with(self):
  41. """ban correctly tests given values"""
  42. test_ban = Ban(banned_value="bob*")
  43. self.assertTrue(test_ban.check_value("bob"))
  44. self.assertTrue(test_ban.check_value("bobby"))
  45. def test_check_value_middle_match(self):
  46. """ban correctly tests given values"""
  47. test_ban = Ban(banned_value="b*b")
  48. self.assertTrue(test_ban.check_value("bob"))
  49. self.assertFalse(test_ban.check_value("bobby"))
  50. def test_check_value_ends_witch(self):
  51. """ban correctly tests given values"""
  52. test_ban = Ban(banned_value="*bob")
  53. self.assertTrue(test_ban.check_value("lebob"))
  54. self.assertFalse(test_ban.check_value("bobby"))