test_ban_model.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. Ban(check_type=Ban.USERNAME, banned_value='bob'),
  7. Ban(check_type=Ban.EMAIL, banned_value='bob@test.com'),
  8. Ban(check_type=Ban.IP, banned_value='127.0.0.1'),
  9. ])
  10. def test_get_ban_for_banned_name(self):
  11. """get_ban finds ban for given username"""
  12. self.assertIsNotNone(Ban.objects.get_ban(username='Bob'))
  13. with self.assertRaises(Ban.DoesNotExist):
  14. Ban.objects.get_ban(username='Jeb')
  15. def test_get_ban_for_banned_email(self):
  16. """get_ban finds ban for given email"""
  17. self.assertIsNotNone(Ban.objects.get_ban(email='bob@test.com'))
  18. with self.assertRaises(Ban.DoesNotExist):
  19. Ban.objects.get_ban(email='jeb@test.com')
  20. def test_get_ban_for_banned_ip(self):
  21. """get_ban finds ban for given ip"""
  22. self.assertIsNotNone(Ban.objects.get_ban(ip='127.0.0.1'))
  23. with self.assertRaises(Ban.DoesNotExist):
  24. Ban.objects.get_ban(ip='42.0.0.1')
  25. def test_get_ban_for_all_bans(self):
  26. """get_ban finds ban for given values"""
  27. valid_kwargs = {'username': 'bob', 'ip': '42.51.52.51'}
  28. self.assertIsNotNone(Ban.objects.get_ban(**valid_kwargs))
  29. invalid_kwargs = {'username': 'bsob', 'ip': '42.51.52.51'}
  30. with self.assertRaises(Ban.DoesNotExist):
  31. Ban.objects.get_ban(**invalid_kwargs)
  32. class BanTests(TestCase):
  33. def test_check_value_literal(self):
  34. """ban correctly tests given values"""
  35. test_ban = Ban(banned_value='bob')
  36. self.assertTrue(test_ban.check_value('bob'))
  37. self.assertFalse(test_ban.check_value('bobby'))
  38. def test_check_value_starts_with(self):
  39. """ban correctly tests given values"""
  40. test_ban = Ban(banned_value='bob*')
  41. self.assertTrue(test_ban.check_value('bob'))
  42. self.assertTrue(test_ban.check_value('bobby'))
  43. def test_check_value_middle_match(self):
  44. """ban correctly tests given values"""
  45. test_ban = Ban(banned_value='b*b')
  46. self.assertTrue(test_ban.check_value('bob'))
  47. self.assertFalse(test_ban.check_value('bobby'))
  48. def test_check_value_ends_witch(self):
  49. """ban correctly tests given values"""
  50. test_ban = Ban(banned_value='*bob')
  51. self.assertTrue(test_ban.check_value('lebob'))
  52. self.assertFalse(test_ban.check_value('bobby'))