Пример #1
0
    def test_unknown_query_params_give_error(self):
        CatalogusFactory.create_batch(2)
        catalogus_list_url = get_operation_url("catalogus_list")

        response = self.client.get(catalogus_list_url,
                                   {"someparam": "somevalue"})

        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)

        error = get_validation_errors(response, "nonFieldErrors")
        self.assertEqual(error["code"], "unknown-parameters")
Пример #2
0
    def test_filter_domein_exact(self):
        catalogus1 = CatalogusFactory.create(domein="ABC")
        catalogus2 = CatalogusFactory.create(domein="DEF")

        response = self.client.get(self.catalogus_list_url, {"domein": "ABC"})

        self.assertEqual(response.status_code, 200)

        data = response.json()["results"]

        self.assertEqual(len(data), 1)
        self.assertEqual(data[0]["url"],
                         f"http://testserver{reverse(catalogus1)}")
    def test_filter_domein_exact(self):
        catalogus1 = CatalogusFactory.create(domein='ABC')
        catalogus2 = CatalogusFactory.create(domein='DEF')

        response = self.client.get(self.catalogus_list_url, {'domein': 'ABC'})

        self.assertEqual(response.status_code, 200)

        data = response.json()['results']

        self.assertEqual(len(data), 1)
        self.assertEqual(data[0]['url'],
                         f'http://testserver{reverse(catalogus1)}')
Пример #4
0
    def test_filter_rsin_in(self):
        catalogus1 = CatalogusFactory.create(rsin="100000009")
        catalogus2 = CatalogusFactory.create(rsin="100000022")

        response = self.client.get(self.catalogus_list_url,
                                   {"rsin__in": "100000009,100000010"})

        self.assertEqual(response.status_code, 200)

        data = response.json()["results"]

        self.assertEqual(len(data), 1)
        self.assertEqual(data[0]["url"],
                         f"http://testserver{reverse(catalogus1)}")
    def test_filter_rsin_in(self):
        catalogus1 = CatalogusFactory.create(rsin='100000009')
        catalogus2 = CatalogusFactory.create(rsin='100000022')

        response = self.client.get(self.catalogus_list_url,
                                   {'rsin__in': '100000009,100000010'})

        self.assertEqual(response.status_code, 200)

        data = response.json()['results']

        self.assertEqual(len(data), 1)
        self.assertEqual(data[0]['url'],
                         f'http://testserver{reverse(catalogus1)}')
    def test_conditional_get_stale(self):
        catalogus = CatalogusFactory.create(with_etag=True)

        response = self.client.get(reverse(catalogus),
                                   HTTP_IF_NONE_MATCH=f'"not-an-md5"')

        self.assertEqual(response.status_code, status.HTTP_200_OK)
    def test_no_changes_gives_304(self):
        """
        Because no changes are made to the catalogus, a code 304 should be
        returned
        """
        catalogus = CatalogusFactory.create(domein="bla")
        catalogus._etag = calculate_etag(catalogus)
        catalogus.save(update_fields=["_etag"])
        etag = catalogus._etag

        response = self.client.get(reverse(catalogus),
                                   HTTP_IF_NONE_MATCH=f'"{etag}"')
        self.assertEqual(response.status_code, status.HTTP_304_NOT_MODIFIED)
    def test_invalidate_etag_after_change(self):
        """
        Because changes are made to the catalogus, a code 200 should be
        returned
        """
        catalogus = CatalogusFactory.create(domein="bla", with_etag=True)
        catalogus._etag = calculate_etag(catalogus)
        catalogus.save(update_fields=["_etag"])
        etag = catalogus._etag

        catalogus.domein = "same"
        catalogus.save()

        response = self.client.get(reverse(catalogus),
                                   HTTP_IF_NONE_MATCH=f'"{etag}"')
        self.assertEqual(response.status_code, status.HTTP_200_OK)
    def test_conditional_get_304(self):
        catalogus = CatalogusFactory.create(with_etag=True)
        response = self.client.get(reverse(catalogus),
                                   HTTP_IF_NONE_MATCH=f'"{catalogus._etag}"')

        self.assertEqual(response.status_code, status.HTTP_304_NOT_MODIFIED)
    def test_catalogus_head_cache_header(self):
        catalogus = CatalogusFactory.create()

        self.assertHeadHasETag(reverse(catalogus))
    def test_catalogus_get_cache_header(self):
        catalogus = CatalogusFactory.create()

        response = self.client.get(reverse(catalogus))

        self.assertHasETag(response)
Пример #12
0
    def setUpTestData(cls):
        super().setUpTestData()

        cls.catalogus = CatalogusFactory.create()

        cls.url = get_operation_url('zaaktype_list')