示例#1
0
    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)
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
 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()
示例#5
0
    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))
示例#6
0
    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))
示例#7
0
    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)
示例#8
0
文件: tests.py 项目: Inboxen/Inboxen
    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)
示例#9
0
    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)
示例#10
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)
示例#11
0
    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)
示例#12
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)
示例#13
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)
示例#14
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)
示例#15
0
文件: tests.py 项目: Inboxen/Inboxen
    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"))
示例#16
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)
示例#17
0
    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"))
示例#18
0
文件: tests.py 项目: Inboxen/Inboxen
 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()