test_ban_model.py 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #-*- coding: utf-8 -*-
  2. from django.test import TestCase
  3. from misago.users.models import Ban, BAN_USERNAME, BAN_EMAIL, BAN_IP
  4. class BansManagerTests(TestCase):
  5. def setUp(self):
  6. Ban.objects.bulk_create([
  7. Ban(test=BAN_USERNAME, banned_value='bob'),
  8. Ban(test=BAN_EMAIL, banned_value='bob@test.com'),
  9. Ban(test=BAN_IP, banned_value='127.0.0.1'),
  10. ])
  11. def test_find_ban_for_banned_name(self):
  12. """find_ban finds ban for given username"""
  13. self.assertTrue(Ban.objects.find_ban(username='Bob') != None)
  14. self.assertTrue(Ban.objects.find_ban(username='Jeb') == None)
  15. def test_find_ban_for_banned_email(self):
  16. """find_ban finds ban for given email"""
  17. self.assertTrue(Ban.objects.find_ban(email='bob@test.com') != None)
  18. self.assertTrue(Ban.objects.find_ban(email='jeb@test.com') == None)
  19. def test_find_ban_for_banned_ip(self):
  20. """find_ban finds ban for given ip"""
  21. self.assertTrue(Ban.objects.find_ban(ip='127.0.0.1') != None)
  22. self.assertTrue(Ban.objects.find_ban(ip='42.0.0.1') == None)
  23. def test_find_ban_for_all_bans(self):
  24. """find_ban finds ban for given values"""
  25. valid_kwargs = {'username': 'bob', 'ip': '42.51.52.51'}
  26. self.assertTrue(Ban.objects.find_ban(**valid_kwargs) != None)
  27. invalid_kwargs = {'username': 'bsob', 'ip': '42.51.52.51'}
  28. self.assertTrue(Ban.objects.find_ban(**invalid_kwargs) == None)
  29. class BanTests(TestCase):
  30. def test_test_value_literal(self):
  31. """ban correctly tests given values"""
  32. test_ban = Ban(banned_value='bob')
  33. self.assertTrue(test_ban.test_value('bob'))
  34. self.assertFalse(test_ban.test_value('bobby'))
  35. def test_test_value_starts_with(self):
  36. """ban correctly tests given values"""
  37. test_ban = Ban(banned_value='bob*')
  38. self.assertTrue(test_ban.test_value('bob'))
  39. self.assertTrue(test_ban.test_value('bobby'))
  40. def test_test_value_middle_match(self):
  41. """ban correctly tests given values"""
  42. test_ban = Ban(banned_value='b*b')
  43. self.assertTrue(test_ban.test_value('bob'))
  44. self.assertTrue(test_ban.test_value('bobby'))
  45. def test_test_value_middle_match(self):
  46. """ban correctly tests given values"""
  47. test_ban = Ban(banned_value='*bob')
  48. self.assertTrue(test_ban.test_value('lebob'))
  49. self.assertFalse(test_ban.test_value('bobby'))