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_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()))