from django.test import TestCase from misago.users.models import Ban class BansManagerTests(TestCase): def setUp(self): Ban.objects.bulk_create([ Ban(check_type=Ban.USERNAME, banned_value='bob'), Ban(check_type=Ban.EMAIL, banned_value='bob@test.com'), Ban(check_type=Ban.IP, banned_value='127.0.0.1'), ]) def test_get_ban_for_banned_name(self): """get_ban finds ban for given username""" self.assertIsNotNone(Ban.objects.get_ban(username='Bob')) with self.assertRaises(Ban.DoesNotExist): Ban.objects.get_ban(username='Jeb') def test_get_ban_for_banned_email(self): """get_ban finds ban for given email""" self.assertIsNotNone(Ban.objects.get_ban(email='bob@test.com')) with self.assertRaises(Ban.DoesNotExist): Ban.objects.get_ban(email='jeb@test.com') def test_get_ban_for_banned_ip(self): """get_ban finds ban for given ip""" self.assertIsNotNone(Ban.objects.get_ban(ip='127.0.0.1')) with self.assertRaises(Ban.DoesNotExist): Ban.objects.get_ban(ip='42.0.0.1') def test_get_ban_for_all_bans(self): """get_ban finds ban for given values""" valid_kwargs = {'username': 'bob', 'ip': '42.51.52.51'} self.assertIsNotNone(Ban.objects.get_ban(**valid_kwargs)) invalid_kwargs = {'username': 'bsob', 'ip': '42.51.52.51'} with self.assertRaises(Ban.DoesNotExist): Ban.objects.get_ban(**invalid_kwargs) class BanTests(TestCase): def test_check_value_literal(self): """ban correctly tests given values""" test_ban = Ban(banned_value='bob') self.assertTrue(test_ban.check_value('bob')) self.assertFalse(test_ban.check_value('bobby')) def test_check_value_starts_with(self): """ban correctly tests given values""" test_ban = Ban(banned_value='bob*') self.assertTrue(test_ban.check_value('bob')) self.assertTrue(test_ban.check_value('bobby')) def test_check_value_middle_match(self): """ban correctly tests given values""" test_ban = Ban(banned_value='b*b') self.assertTrue(test_ban.check_value('bob')) self.assertFalse(test_ban.check_value('bobby')) def test_check_value_ends_witch(self): """ban correctly tests given values""" test_ban = Ban(banned_value='*bob') self.assertTrue(test_ban.check_value('lebob')) self.assertFalse(test_ban.check_value('bobby'))