def test_criteria_cached(self): self.mock.StubOutWithMock(cache, 'get') cache.get('criteria:test_crit').AndReturn(self.crit) cache.get('criteria:test_crit:users') cache.get('criteria:test_crit:groups') self.mock.StubOutWithMock(utils, 'cache_criteria') utils.cache_criteria(instance=self.crit) # users utils.cache_criteria(instance=self.crit) # groups self.mock.ReplayAll() meets_criteria(self.request, 'test_crit') self.mock.VerifyAll()
def test_referrer(self): self.crit.referrer = 'example.com,www.example.com' self.crit.save() self.request.META['HTTP_REFERER'] = 'http://example.com/blah' self.assertIs( meets_criteria(self.request, 'test_crit'), True)
def test_authenticated_user(self): self.crit.authenticated = True self.crit.save() self.request.user = User.objects.create(username='******') self.assertIs( meets_criteria(self.request, 'test_crit'), True)
def test_testing_cookie_off(self): self.crit.testing = True self.crit.save() self.request.COOKIES['dact_test_crit'] = 'False' self.assertIs( meets_criteria(self.request, 'test_crit'), False)
def test_superuser(self): self.crit.superuser = True self.crit.save() self.request.user = User.objects.create( username='******', is_superuser=True) self.assertIs( meets_criteria(self.request, 'test_crit'), True)
def test_testing_force_off(self): self.crit.testing = True self.crit.save() self.request = RequestFactory().get('', {'dact_test_crit': 0}) self.assertIs( meets_criteria(self.request, 'test_crit'), False) self.assertIs(self.request.affected_tests['test_crit'], False)
def test_query_args_exact_no_match(self): self.crit.query_args = {'foo': 'bar'} self.crit.save() request = RequestFactory().get('', {'foo': 'baz'}) request.user = AnonymousUser() self.assertIs( meets_criteria(request, 'test_crit'), False)
def test_query_args_any_for_key(self): self.crit.query_args = {'foo': '*'} self.crit.save() request = RequestFactory().get('', {'foo': 'bar'}) request.user = AnonymousUser() self.assertIs( meets_criteria(request, 'test_crit'), True)
def test_query_args_not_in_list(self): self.crit.query_args = {'foo': ['bar', 'baz']} self.crit.save() request = RequestFactory().get('', {'foo': 'boz'}) request.user = AnonymousUser() self.assertIs( meets_criteria(request, 'test_crit'), False)
def test_entry_url(self): self.crit.entry_url = '/test.html' self.crit.save() self.request.path = '/test.html' self.request.META['HTTP_REFERER'] = 'http://example.com/blah' self.request.META['HTTP_HOST'] = 'testserver.com' self.assertIs( meets_criteria(self.request, 'test_crit'), True)
def test_entry_url_nonentry_domain(self): with self.settings(AFFECTED_NONENTRY_DOMAINS=['example.com']): self.crit.entry_url = '/test.html' self.crit.save() self.request.path = '/test.html' self.request.META['HTTP_REFERER'] = 'http://example.com/blah' self.request.META['HTTP_HOST'] = 'testserver.com' self.assertIs( meets_criteria(self.request, 'test_crit'), False)
def test_device_type_active(self): self.crit.device_type = Criteria.MOBILE_DEVICE self.crit.save() self.mock.StubOutWithMock(utils, 'detect_device') utils.detect_device(self.request).AndReturn(Criteria.MOBILE_DEVICE) self.mock.ReplayAll() self.assertIs( meets_criteria(self.request, 'test_crit'), True) self.mock.VerifyAll()
def test_percent_off(self): self.crit.percent = 50 self.crit.save() self.mock.StubOutWithMock(random, 'uniform') random.uniform(0, 100).AndReturn(99) self.mock.StubOutWithMock(utils, 'set_persist_criteria') utils.set_persist_criteria(self.request, 'test_crit', False) self.mock.ReplayAll() self.assertIs( meets_criteria(self.request, 'test_crit'), False) self.mock.VerifyAll()
def test_percent_cookie_off(self): self.crit.percent = 50 self.crit.save() self.request.COOKIES['dac_test_crit'] = 'False' self.mock.StubOutWithMock(random, 'uniform') self.mock.StubOutWithMock(utils, 'set_persist_criteria') utils.set_persist_criteria(self.request, 'test_crit', False) self.mock.ReplayAll() self.assertIs( meets_criteria(self.request, 'test_crit'), False) self.mock.VerifyAll()
def test_user_in_users(self): self.request.user = User.objects.create( username='******') self.crit.users.add(self.request.user) self.mock.StubOutWithMock(utils, 'cache_criteria') utils.cache_criteria(instance=self.crit) # criteria utils.cache_criteria(instance=self.crit) # users self.mock.ReplayAll() self.assertIs( meets_criteria(self.request, 'test_crit'), True) self.mock.VerifyAll()
def test_user_in_cached_users(self): self.request.user = User.objects.create( username='******') self.crit.users.add(self.request.user) self.mock.StubOutWithMock(cache, 'get') cache.get('criteria:test_crit') cache.get('criteria:test_crit:users').AndReturn([self.request.user]) self.mock.StubOutWithMock(utils, 'cache_criteria') utils.cache_criteria(instance=self.crit) # criteria self.mock.ReplayAll() self.assertIs( meets_criteria(self.request, 'test_crit'), True) self.mock.VerifyAll()
def test_meets_nothing(self): self.mock.StubOutWithMock(cache, 'get') cache.get('criteria:test_crit') cache.get('criteria:test_crit:users') cache.get('criteria:test_crit:groups') self.mock.StubOutWithMock(utils, 'cache_criteria') utils.cache_criteria(instance=self.crit) # criteria utils.cache_criteria(instance=self.crit) # users utils.cache_criteria(instance=self.crit) # groups self.mock.ReplayAll() self.assertIs( meets_criteria(self.request, 'test_crit'), False) self.mock.VerifyAll()
def test_criteria_doesnt_exist(self): self.assertIs( meets_criteria(self.request, 'fake_crit'), False)
def test_on_for_everyone(self): self.crit.everyone = True self.crit.save() self.assertIs( meets_criteria(self.request, 'test_crit'), True)
def test_off_for_everyone(self): self.crit.everyone = False self.crit.save() self.assertIs( meets_criteria(self.request, 'test_crit'), False)
def test_persistent_cookie_off(self): self.crit.persistent = True self.crit.save() self.request.COOKIES['dac_test_crit'] = 'False' self.assertIs(meets_criteria(self.request, 'test_crit'), False)
def test_nonauthenticated_user(self): self.crit.authenticated = True self.crit.save() self.assertIs( meets_criteria(self.request, 'test_crit'), False)