class TestJsonRest(TestCase): """ Use the mock backend for the Browser to test JSON REST capabilities. """ def setUp(self): self.backend = MockBackend() self.client = RestClientJson('http://mocked', backend=self.backend) def test_post(self): """Positive test for JSON POST""" # Arrange mock = MockResponse() mock.http_code = 200 mock.src = '"success"' expected = "success" url = '%s/object' % self.client.base method = 'POST' data = dict(a=1, b=2, c=3) expected_data = '{"a": 1, "c": 3, "b": 2}' headers = { 'Content-Type': 'text/json' } self.backend.responses.add(mock, url, method, expected_data, headers) # Act, Assert self.assertEqual(self.client.post('object', data), expected, {'Content-Type': 'text/json'}) def test_get(self): """Positive test for JSON GET""" # Arrange mock = MockResponse() mock.http_code = 200 mock.src = '"success"' expected = "success" uid = 1 url = '%s/object/%s' % (self.client.base, uid) method = 'GET' self.backend.responses.add(mock, url, method) # Act, Assert self.assertEqual(self.client.get('object', uid), expected) def test_head(self): """Positive test for JSON HEAD""" # Arrange mock = MockResponse() mock.http_code = 200 mock.src = 'failure' uid = 1 url = '%s/object/%s' % (self.client.base, uid) method = 'HEAD' self.backend.responses.add(mock, url, method) # Act, Assert self.assertEqual(self.client.head('object', uid), None) def test_put(self): """Positive test for JSON PUT""" # Arrange mock = MockResponse() mock.http_code = 200 mock.src = '"success"' expected = "success" uid = 1 url = '%s/object/%s' % (self.client.base, uid) method = 'PUT' data = dict(a=1, b=2, c=3) expected_data = '{"a": 1, "c": 3, "b": 2}' headers = { 'Content-Type': 'text/json' } self.backend.responses.add(mock, url, method, expected_data, headers) # Act, Assert self.assertEqual(self.client.put('object', uid, data), expected) def test_delete(self): """Positive test for JSON DELETE""" # Arrange mock = MockResponse() mock.http_code = 200 mock.src = '"success"' expected = "success" uid = 1 url = '%s/object/%s' % (self.client.base, uid) method = 'DELETE' self.backend.responses.add(mock, url, method) # Act, Assert self.assertEqual(self.client.delete('object', uid), expected)
def setUp(self): self.backend = MockBackend() self.client = RestClientJson('http://mocked', backend=self.backend)