def test_match_rules(self): # rule1 - to match all users r1 = RuleSet() self.assertTrue(r1.match_user(self.anon)) request = self.factory.get('/') request.user = self.anon self.assertTrue(r1.match_uri, request.path) middleware = ProfilingMiddleware() self.assertEqual(middleware.match_rules(request, [r1]), [r1]) # now change the uri_regex so we no longer get a match r1.uri_regex = "^xyz$" self.assertEqual(middleware.match_rules(request, [r1]), []) # now change the user_groups so we no longer get a match request.user = self.bob r1.uri_regex = "" r1.user_filter_type = RuleSet.USER_FILTER_GROUP r1.user_group_filter = "test" self.assertEqual(middleware.match_rules(request, [r1]), []) # add bob to the group self.bob.groups.add(self.test_group) self.assertEqual(middleware.match_rules(request, [r1]), [r1])
def test_match_rules(self): # rule1 - to match all users r1 = RuleSet() self.assertTrue(r1.match_user(self.anon)) request = self.factory.get('/') request.user = self.anon self.assertTrue(r1.match_uri, request.path) middleware = ProfilingMiddleware() self.assertEqual(middleware.match_rules(request, [r1]), [r1]) # now change the uri_regex so we no longer get a match r1.uri_regex = "^xyz$" self.assertEqual(middleware.match_rules(request, [r1]), []) # now change the user_groups so we no longer get a match request.user = self.bob r1.uri_regex = "" r1.user_filter_type = RuleSet.USER_FILTER_GROUP r1.user_group_filter = "test" self.assertEqual(middleware.match_rules(request, [r1]), []) # add bob to the group self.bob.groups.add(self.test_group) self.assertEqual(middleware.match_rules(request, [r1]), [r1])
def test_has_group_filter(self): ruleset = RuleSet() filters = ( ("", False), (" ", False), ("test", True), ) for f in filters: ruleset.user_group_filter = f[0] self.assertEqual(ruleset.has_group_filter, f[1])
def test_clean(self): ruleset = RuleSet(user_group_filter="test") for f in (RuleSet.USER_FILTER_ALL, RuleSet.USER_FILTER_AUTH): ruleset.user_filter_type = f self.assertRaises(ValidationError, ruleset.clean) ruleset.user_filter_type = RuleSet.USER_FILTER_GROUP ruleset.clean() # now try the opposite - user_filter_type set, but no group set ruleset.user_group_filter = "" self.assertRaises(ValidationError, ruleset.clean)
def test_has_group_filter(self): ruleset = RuleSet() filters = ( ("", False), (" ", False), ("test", True), ) for f in filters: ruleset.user_group_filter = f[0] self.assertEqual(ruleset.has_group_filter, f[1])
def test_clean(self): ruleset = RuleSet(user_group_filter="test") for f in (RuleSet.USER_FILTER_ALL, RuleSet.USER_FILTER_AUTH): ruleset.user_filter_type = f self.assertRaises(ValidationError, ruleset.clean) ruleset.user_filter_type = RuleSet.USER_FILTER_GROUP ruleset.clean() # now try the opposite - user_filter_type set, but no group set ruleset.user_group_filter = "" self.assertRaises(ValidationError, ruleset.clean)
def test_match_custom_user(self): ruleset = RuleSet("") self.assertFalse(ruleset.has_group_filter) self.assertEqual(ruleset.user_filter_type, RuleSet.USER_FILTER_ALL) # start with no user / anonymous self.assertTrue(ruleset.match_user(None)) self.assertTrue(ruleset.match_user(AnonymousUser())) # now exclude anonymous ruleset.user_filter_type = RuleSet.USER_FILTER_AUTH self.assertFalse(ruleset.match_user(None)) self.assertFalse(ruleset.match_user(AnonymousUser())) # create a real user, but still no group filter bob = CustomUser.objects.create_user( mobile_number="+886-999888777", password="******" ) self.assertFalse(bob.groups.exists()) self.assertFalse(bob.is_staff) self.assertTrue(bob.is_authenticated()) self.assertTrue(ruleset.match_user(bob)) # now create the filter, and check bob no longer matches ruleset.user_filter_type = RuleSet.USER_FILTER_GROUP ruleset.user_group_filter = "test" test_group = Group(name="test") test_group.save() self.assertFalse(ruleset.match_user(bob)) # add bob to the group, and check he now matches bob.groups.add(test_group) self.assertTrue(bob.groups.filter(name="test").exists()) self.assertTrue(ruleset.match_user(bob)) # test setting an invalid value ruleset.user_filter_type = -1 self.assertFalse(ruleset.match_user(bob)) bob.is_staff = False self.assertFalse(ruleset.match_user(bob)) self.assertFalse(ruleset.match_user(None)) self.assertFalse(ruleset.match_user(AnonymousUser()))
def test_match_custom_user(self): ruleset = RuleSet("") self.assertFalse(ruleset.has_group_filter) self.assertEqual(ruleset.user_filter_type, RuleSet.USER_FILTER_ALL) # start with no user / anonymous self.assertTrue(ruleset.match_user(None)) self.assertTrue(ruleset.match_user(AnonymousUser())) # now exclude anonymous ruleset.user_filter_type = RuleSet.USER_FILTER_AUTH self.assertFalse(ruleset.match_user(None)) self.assertFalse(ruleset.match_user(AnonymousUser())) # create a real user, but still no group filter bob = CustomUser.objects.create_user(mobile_number="+886-999888777", password="******") self.assertFalse(bob.groups.exists()) self.assertFalse(bob.is_staff) self.assertTrue(bob.is_authenticated()) self.assertTrue(ruleset.match_user(bob)) # now create the filter, and check bob no longer matches ruleset.user_filter_type = RuleSet.USER_FILTER_GROUP ruleset.user_group_filter = "test" test_group = Group(name="test") test_group.save() self.assertFalse(ruleset.match_user(bob)) # add bob to the group, and check he now matches bob.groups.add(test_group) self.assertTrue(bob.groups.filter(name="test").exists()) self.assertTrue(ruleset.match_user(bob)) # test setting an invalid value ruleset.user_filter_type = -1 self.assertFalse(ruleset.match_user(bob)) bob.is_staff = False self.assertFalse(ruleset.match_user(bob)) self.assertFalse(ruleset.match_user(None)) self.assertFalse(ruleset.match_user(AnonymousUser()))