def test_get(self): # make sure it's accessible when DEBUG=True with override_settings(DEBUG=True): urlresolvers.clear_url_caches() reload_urlconf() url = urlresolvers.reverse('inboxen-styleguide') response = self.client.get(url) self.assertEqual(response.status_code, 200) # make sure it's not accessible when DEBUG=False with override_settings(DEBUG=False): urlresolvers.clear_url_caches() reload_urlconf() # url should no longer exist response = self.client.get(url) self.assertEqual(response.status_code, 404)
def test_get(self): # make sure it's accessible when DEBUG=True with override_settings(DEBUG=True): urlresolvers.clear_url_caches() reload_urlconf() url = urlresolvers.reverse('inboxen-styleguide') response = self.client.get(url) self.assertEqual(response.status_code, 200) # make sure it's not accessible when DEBUG=False with override_settings(DEBUG=False): urlresolvers.clear_url_caches() reload_urlconf() # url should no longer exist response = self.client.get(url) self.assertEqual(response.status_code, 404)
def test_index_page(self): response = self.client.get(urlresolvers.reverse("index")) self.assertEqual(response.status_code, 200) self.assertIn("Join", response.content) with override_settings(ENABLE_REGISTRATION=False): response = self.client.get(urlresolvers.reverse("index")) self.assertEqual(response.status_code, 200) self.assertNotIn("Join", response.content)
def test_liberate(self): with override_settings(LIBERATION_PATH=self.tmp_dir): form = LiberationForm(self.user, data={ "storage_type": 0, "compression_type": 0 }) self.assertTrue(form.is_valid()) form.save()
def test_index_page(self): response = self.client.get(urlresolvers.reverse("index")) self.assertEqual(response.status_code, 200) self.assertIn("Join", str(response.content)) with override_settings(ENABLE_REGISTRATION=False): response = self.client.get(urlresolvers.reverse("index")) self.assertEqual(response.status_code, 200) self.assertNotIn("Join", str(response.content))
def test_index_page_logged_in(self): user = factories.UserFactory() assert self.client.login(username=user.username, password="******", request=MockRequest(user)) response = self.client.get(urlresolvers.reverse("index")) self.assertEqual(response.status_code, 200) self.assertNotIn("Join", str(response.content)) with override_settings(ENABLE_REGISTRATION=False): response = self.client.get(urlresolvers.reverse("index")) self.assertEqual(response.status_code, 200) self.assertNotIn("Join", str(response.content))
def test_index_page_logged_in(self): user = factories.UserFactory() assert self.client.login(username=user.username, password="******", request=MockRequest(user)) response = self.client.get(urlresolvers.reverse("index")) self.assertEqual(response.status_code, 200) self.assertNotIn("Join", response.content) with override_settings(ENABLE_REGISTRATION=False): response = self.client.get(urlresolvers.reverse("index")) self.assertEqual(response.status_code, 200) self.assertNotIn("Join", response.content)
def test_liberate(self): """Run through all combinations of compressions and mailbox formats""" with override_settings(LIBERATION_PATH=self.tmp_dir): for storage, compression in itertools.product(LiberationForm.STORAGE_TYPES, LiberationForm.COMPRESSION_TYPES): form_data = {"storage_type": str(storage[0]), "compression_type": str(compression[0])} form = LiberationForm(self.user, data=form_data) self.assertTrue(form.is_valid()) form.save() # delete liberation now we're done with it and refetch user models.Liberation.objects.all().delete() self.user = get_user_model().objects.get(id=self.user.id)
def test_skip_subtask_generation(self, skew_mock, task_mock): # check default value self.assertEqual(settings.PER_USER_EMAIL_QUOTA, 0) tasks.calculate_quota.delay() # tasks should be skipped self.assertEqual(task_mock.chunks.call_count, 0) with override_settings(PER_USER_EMAIL_QUOTA=10): # if there are no suers, skip skewing the group task_mock.chunks.return_value.group.return_value = [] tasks.calculate_quota.delay() self.assertEqual(task_mock.chunks.call_count, 1) self.assertEqual(task_mock.chunks.return_value.group.call_count, 1) self.assertEqual(skew_mock.call_count, 0)
def test_inbox_create_length(self): user = factories.UserFactory() domain = factories.DomainFactory() default_length = settings.INBOX_LENGTH with override_settings(INBOX_LENGTH=default_length + 1): inbox = models.Inbox.objects.create(user=user, domain=domain) self.assertEqual(len(inbox.inbox), default_length + 1) inbox = models.Inbox.objects.create(user=user, domain=domain, length=default_length + 3) self.assertEqual(len(inbox.inbox), default_length + 3) with self.assertRaises(AssertionError): inbox = models.Inbox.objects.create(user=user, domain=domain, length=-1)
def test_skip_subtask_generation(self, skew_mock, task_mock): # check default value self.assertEqual(settings.PER_USER_EMAIL_QUOTA, 0) tasks.calculate_quota.delay() # tasks should be skipped self.assertEqual(task_mock.chunks.call_count, 0) with override_settings(PER_USER_EMAIL_QUOTA=10): # if there are no suers, skip skewing the group task_mock.chunks.return_value.group.return_value = [] tasks.calculate_quota.delay() self.assertEqual(task_mock.chunks.call_count, 1) self.assertEqual(task_mock.chunks.return_value.group.call_count, 1) self.assertEqual(skew_mock.call_count, 0)
def test_inbox_ratelimit_valid_keys(self): request = MockRequest(self.user) cache_prefix = u"hello€@.+-_ <>" with override_settings(INBOX_LIMIT_CACHE_PREFIX=cache_prefix), \ warnings.catch_warnings(record=True) as w: self.assertEqual(inbox_ratelimit.counter_full(request), False) for i in range(settings.INBOX_LIMIT_COUNT + 1): inbox_ratelimit.counter_increase(request) self.assertEqual(inbox_ratelimit.counter_full(request), True) self.assertEqual(len(w), 0)
def test_inbox_ratelimit_valid_keys(self): request = MockRequest(self.user) cache_prefix = u"hello€@.+-_ <>" with override_settings(INBOX_LIMIT_CACHE_PREFIX=cache_prefix), \ warnings.catch_warnings(record=True) as w: self.assertEqual(inbox_ratelimit.counter_full(request), False) for i in range(settings.INBOX_LIMIT_COUNT + 1): inbox_ratelimit.counter_increase(request) self.assertEqual(inbox_ratelimit.counter_full(request), True) self.assertEqual(len(w), 0)
def test_liberate(self): """Run through all combinations of compressions and mailbox formats""" with override_settings(LIBERATION_PATH=self.tmp_dir): for storage, compression in itertools.product( LiberationForm.STORAGE_TYPES, LiberationForm.COMPRESSION_TYPES): form_data = { "storage_type": str(storage[0]), "compression_type": str(compression[0]) } form = LiberationForm(self.user, data=form_data) self.assertTrue(form.is_valid()) form.save() # delete liberation now we're done with it and refetch user models.Liberation.objects.all().delete() self.user = get_user_model().objects.get(id=self.user.id)
def test_sendfile(self): with override_settings(LIBERATION_PATH=self.tmp_dir): self.user.liberation.path = "test.txt" self.user.liberation.save() self.assertEqual(os.path.join(self.tmp_dir, "test.txt"), self.user.liberation.path) file_obj = open(self.user.liberation.path, "wb") file_obj.write(b"hello\n") file_obj.close() response = self.client.get(reverse("user-liberate-get")) self.assertEqual(response.status_code, 200) self.assertEqual(response.content, b"") self.assertEqual(response["Content-Type"], "application/x-gzip") self.assertEqual(response["Content-Disposition"], 'attachment; filename="liberated_data.tar.gz"') self.assertEqual(response["X-Sendfile"], os.path.join(self.tmp_dir, "test.txt"))
def test_inbox_create_length(self): user = factories.UserFactory() domain = factories.DomainFactory() default_length = settings.INBOX_LENGTH with override_settings(INBOX_LENGTH=default_length + 1): inbox = models.Inbox.objects.create(user=user, domain=domain) self.assertEqual(len(inbox.inbox), default_length + 1) inbox = models.Inbox.objects.create(user=user, domain=domain, length=default_length + 3) self.assertEqual(len(inbox.inbox), default_length + 3) with self.assertRaises(AssertionError): inbox = models.Inbox.objects.create(user=user, domain=domain, length=-1)
def test_sendfile(self): with override_settings(LIBERATION_PATH=self.tmp_dir): self.user.liberation.path = "test.txt" self.user.liberation.save() self.assertEqual(os.path.join(self.tmp_dir, "test.txt"), self.user.liberation.path) file_obj = open(self.user.liberation.path, "wb") file_obj.write(b"hello\n") file_obj.close() response = self.client.get(reverse("user-liberate-get")) self.assertEqual(response.status_code, 200) self.assertEqual(response.content, b"") self.assertEqual(response["Content-Type"], "application/x-gzip") self.assertEqual(response["Content-Disposition"], 'attachment; filename="liberated_data.tar.gz"') self.assertEqual(response["X-Sendfile"], os.path.join(self.tmp_dir, "test.txt"))
def test_liberate(self): with override_settings(LIBERATION_PATH=self.tmp_dir): form = LiberationForm(self.user, data={"storage_type": 0, "compression_type": 0}) self.assertTrue(form.is_valid()) form.save()