def test_chemical_should_return_chemical_for_format_name(self, mock_search): mock_chebi = MockQuery((self.chebi.chebi_id, self.chebi.display_name, self.chebi.chebiid, self.chebi.format_name)) mock_chebi_url = MockQuery((self.chebi_url.obj_url,)) def side_effect(*args, **kwargs): if args[0] == ChebiUrl.obj_url: return mock_chebi_url else: return mock_chebi mock_search.side_effect = side_effect request = testing.DummyRequest() request.context = testing.DummyResource() request.matchdict['id'] = self.chebi.format_name response = chemical(request) self.assertEqual(response, { 'display_name': self.chebi.display_name, 'chebi_id': self.chebi.chebiid, 'id': self.chebi.chebi_id, 'link': '/chemical/' + self.chebi.format_name + '/overview/', 'urls': [{'link': self.chebi_url.obj_url}] }) self.assertTrue(mock_chebi._query_filter._params.compare(Chebi.format_name == self.chebi.format_name)) self.assertTrue(mock_chebi_url._query_filter._params.compare(ChebiUrl.chebi_id == self.chebi.chebi_id))
def test_chemical_should_404_nonexistent_identifier(self, mock_search): mock_search.return_value = MockQuery(None) request = testing.DummyRequest() request.context = testing.DummyResource() request.matchdict['id'] = 'nonexistent_id' response = chemical(request) self.assertEqual(response.status_code, 404) self.assertEqual(json.loads(response.body), {'error': "Chemical not found"})
def test_should_return_non_existent_chemical(self, mock_search, mock_redis): mock_search.return_value = MockQuery(None) request = testing.DummyRequest() request.context = testing.DummyResource() #request.matchdict['format_name'] = 'nonexistent_id' id = mock_redis.extract_id_request(request, 'chemical', param_name='format_name') response = chemical(request) self.assertEqual(response.status_code, 404)
def test_should_return_valid_chemical(self, mock_search, mock_redis): mock_search.side_effect = chemical_side_effect chem = factory.ChebiFactory() request = testing.DummyRequest() request.context = testing.DummyResource() #request.matchdict['format_name'] = "CHEBI:16240" format_name = mock_redis.extract_id_request(request, 'chemical', param_name='format_name') response = chemical(request) self.assertEqual(response, chem.to_dict())