def setUp(self): self.attributes = {'name': 'A random Project', 'description': 'A real example Project'} self.subject = RequestMethods() self.nulldata = json.dumps(None) # request method always calls json.dumps self.headers = {'Content-Type': 'application/json'} self.json_dumps_attributes = json.dumps(self.attributes)
class TestRequestMethods(TestCase): def setUp(self): self.attributes = {'name': 'A random Project', 'description': 'A real example Project'} self.subject = RequestMethods() self.nulldata = json.dumps(None) # request method always calls json.dumps self.headers = {'Content-Type': 'application/json'} self.json_dumps_attributes = json.dumps(self.attributes) def test_prefixes(self): assert_equal(self.subject.save_prefix(), "") assert_equal(self.subject.update_prefix(), "") assert_equal(self.subject.delete_prefix(), "") def test_endpoint(self): cases = { 'repository': 'repositories', 'project': 'projects', 'processing': 'processings', 'process_time': 'process_times' } for (singular, plural) in cases.items(): with patch.object(self.subject.__class__, 'entity_name', return_value=singular): assert_equal(self.subject.endpoint(), plural) @raises(NotImplementedError) def test_service_address(self): self.subject.service_address() @raises(NotImplementedError) def test_entity_name(self): self.subject.entity_name() @patch('requests.request') def test_request(self, requests_request): with patch.object(type(self.subject), 'endpoint', return_value="request_methods") as mock_endpoint, \ patch.object(type(self.subject), 'service_address', return_value="http://*****:*****@patch('requests.request') def test_request_with_prefix(self, requests_request): with patch.object(type(self.subject), 'endpoint', return_value="request_methods") as mock_endpoint, \ patch.object(type(self.subject), 'service_address', return_value="http://*****:*****@patch('requests.request') def test_request_with_default_method(self, requests_request): with patch.object(type(self.subject), 'endpoint', return_value="request_methods") as mock_endpoint, \ patch.object(type(self.subject), 'service_address', return_value="http://*****:*****@patch('json.dumps') @patch('requests.request') def test_request_with_parameters(self, requests_request, json_dumps): with patch.object(type(self.subject), 'endpoint', return_value="request_methods") as mock_endpoint, \ patch.object(type(self.subject), 'service_address', return_value="http://*****:*****@patch('json.dumps') @patch('requests.request') def test_request_with_id_parameter(self, requests_request, json_dumps): with patch.object(type(self.subject), 'endpoint', return_value="request_methods") as mock_endpoint, \ patch.object(type(self.subject), 'service_address', return_value="http://request_methods:8000") as mock_service_address: response_mock = Mock() response_mock.json = Mock(return_value=self.attributes) requests_request.return_value = response_mock attributes = {'id': 42} self.subject.request(":id/something", params=attributes) json_dumps.assert_called_once_with({}) requests_request.assert_called_once_with('post', "http://request_methods:8000/request_methods/42/something", data=json.dumps({}), headers=self.headers) response_mock.json.assert_called_with() mock_endpoint.assert_called_once()