test_ban_model.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #-*- coding: utf-8 -*-
  2. from django.test import TestCase
  3. from misago.users.models import Ban
  4. class BansManagerTests(TestCase):
  5. def setUp(self):
  6. Ban.objects.bulk_create([
  7. Ban(
  8. check_type=Ban.USERNAME,
  9. banned_value='bob'
  10. ),
  11. Ban(
  12. check_type=Ban.EMAIL,
  13. banned_value='bob@test.com'
  14. ),
  15. Ban(
  16. check_type=Ban.IP,
  17. banned_value='127.0.0.1'
  18. ),
  19. ])
  20. def test_get_ban_for_banned_name(self):
  21. """get_ban finds ban for given username"""
  22. self.assertIsNotNone(Ban.objects.get_ban(username='Bob'))
  23. with self.assertRaises(Ban.DoesNotExist):
  24. Ban.objects.get_ban(username='Jeb')
  25. def test_get_ban_for_banned_email(self):
  26. """get_ban finds ban for given email"""
  27. self.assertIsNotNone(Ban.objects.get_ban(email='bob@test.com'))
  28. with self.assertRaises(Ban.DoesNotExist):
  29. Ban.objects.get_ban(email='jeb@test.com')
  30. def test_get_ban_for_banned_ip(self):
  31. """get_ban finds ban for given ip"""
  32. self.assertIsNotNone(Ban.objects.get_ban(ip='127.0.0.1'))
  33. with self.assertRaises(Ban.DoesNotExist):
  34. Ban.objects.get_ban(ip='42.0.0.1')
  35. def test_get_ban_for_all_bans(self):
  36. """get_ban finds ban for given values"""
  37. valid_kwargs = {'username': 'bob', 'ip': '42.51.52.51'}
  38. self.assertIsNotNone(Ban.objects.get_ban(**valid_kwargs))
  39. invalid_kwargs = {'username': 'bsob', 'ip': '42.51.52.51'}
  40. with self.assertRaises(Ban.DoesNotExist):
  41. Ban.objects.get_ban(**invalid_kwargs)
  42. class BanTests(TestCase):
  43. def test_check_value_literal(self):
  44. """ban correctly tests given values"""
  45. test_ban = Ban(banned_value='bob')
  46. self.assertTrue(test_ban.check_value('bob'))
  47. self.assertFalse(test_ban.check_value('bobby'))
  48. def test_check_value_starts_with(self):
  49. """ban correctly tests given values"""
  50. test_ban = Ban(banned_value='bob*')
  51. self.assertTrue(test_ban.check_value('bob'))
  52. self.assertTrue(test_ban.check_value('bobby'))
  53. def test_check_value_middle_match(self):
  54. """ban correctly tests given values"""
  55. test_ban = Ban(banned_value='b*b')
  56. self.assertTrue(test_ban.check_value('bob'))
  57. self.assertFalse(test_ban.check_value('bobby'))
  58. def test_check_value_ends_witch(self):
  59. """ban correctly tests given values"""
  60. test_ban = Ban(banned_value='*bob')
  61. self.assertTrue(test_ban.check_value('lebob'))
  62. self.assertFalse(test_ban.check_value('bobby'))