def test_without_default(self): view = content_negotiate(self.handlers) request = factory.get('/', HTTP_ACCEPT='text/*;q=0.5,*/*; q=0.1') response = view(request) self.assertEqual(self.handlers['text/html'].call_count, 1) request = factory.get('/', HTTP_ACCEPT='application/json') response = view(request) self.assertEqual(self.handlers['application/json'].call_count, 1) request = factory.get('/', HTTP_ACCEPT='text/xml') response = view(request) self.assertEqual(response.status_code, 406)
def detail_view(self): kwargs = {'model': self.model} return content_negotiate({ 'application/json': JSONDetailView.as_view(**kwargs), }, default=DetailView.as_view(**kwargs))
def list_view(self): kwargs = {'model': self.model} return content_negotiate({ 'application/json': JSONListView.as_view(**kwargs), }, default=ListView.as_view(**kwargs))
def test_vary_headers(self): view = content_negotiate(self.handlers) request = factory.get('/', HTTP_ACCEPT='text/*;q=0.5,*/*; q=0.1') response = view(request) self.assertIn('Accept', response['Vary'])