def test_ProductVersions(self): def mocked_get(*args, **k): return { 'hits': [ { 'product': 'Firefox', 'version': '1.0', } ], 'total': 1 } raise NotImplementedError ProductVersions.implementation().get.side_effect = mocked_get url = reverse('api:model_wrapper', args=('ProductVersions',)) response = self.client.get(url) eq_(response.status_code, 200) dump = json.loads(response.content) eq_(dump['total'], 1) eq_(dump['hits'][0], { 'product': 'Firefox', 'version': '1.0', })
def test_cache_control(self): """successful queries against models with caching should set a Cache-Control header.""" def mocked_get(**options): assert options['product'] == [settings.DEFAULT_PRODUCT] return { "hits": [ { "product": settings.DEFAULT_PRODUCT, "throttle": 100.0, "end_date": "2018-10-29", "is_featured": True, "build_type": "nightly", "version": "63.0a1", "start_date": "2018-06-25", "has_builds": True, "is_rapid_beta": False }, ] } ProductVersions.implementation().get.side_effect = mocked_get url = reverse('api:model_wrapper', args=('ProductVersions', )) response = self.client.get(url, {'product': settings.DEFAULT_PRODUCT}) assert response.status_code == 200 assert response['Cache-Control'] assert 'private' in response['Cache-Control'] cache_seconds = ProductVersions.cache_seconds assert 'max-age={}'.format(cache_seconds) in response['Cache-Control']
def test_ProductVersions(self): def mocked_get(*args, **k): return { 'hits': [ { 'product': 'Firefox', 'version': '1.0', } ], 'total': 1 } raise NotImplementedError ProductVersions.implementation().get.side_effect = mocked_get url = reverse('api:model_wrapper', args=('ProductVersions',)) response = self.client.get(url) assert response.status_code == 200 dump = json.loads(response.content) assert dump['total'] == 1 expected = { 'product': 'Firefox', 'version': '1.0', } assert dump['hits'][0] == expected