def test_reference_lists_should_400_for_no_data(self): request = testing.DummyRequest() request.json_body = {} request.context = testing.DummyResource() response = reference_list(request) self.assertEqual(response.status_code, 400) self.assertEqual(json.loads(response.body), {'error': "No reference_ids sent. JSON object expected: {\"reference_ids\": [\"id_1\", \"id_2\", ...]}"})
def test_reference_list_should_404_valid_but_nonexistent_ids(self, mock_search): mock_search.return_value = MockQuery(None) request = testing.DummyRequest(post={'reference_ids': ['1']}) request.json_body = {'reference_ids': ['1']} request.context = testing.DummyResource() response = reference_list(request) self.assertEqual(json.loads(response.body), {'error': "Reference_ids do not exist."}) self.assertEqual(response.status_code, 404)
def test_reference_list_should_404_valid_but_nonexistent_ids( self, mock_search): mock_search.return_value = MockQuery(None) request = testing.DummyRequest(post={'reference_ids': ['1']}) request.json_body = {'reference_ids': ['1']} request.context = testing.DummyResource() response = reference_list(request) self.assertEqual(json.loads(response.body), {'error': "Reference_ids do not exist."}) self.assertEqual(response.status_code, 404)
def test_reference_lists_should_400_for_no_data(self): request = testing.DummyRequest() request.json_body = {} request.context = testing.DummyResource() response = reference_list(request) self.assertEqual(response.status_code, 400) self.assertEqual( json.loads(response.body), { 'error': "No reference_ids sent. JSON object expected: {\"reference_ids\": [\"id_1\", \"id_2\", ...]}" })
def test_reference_list_should_400_for_invalid_data(self): request = testing.DummyRequest(post={'blablabla_ids': ['123']}) request.json_body = {'blablabla_ids': ['123']} request.context = testing.DummyResource() response = reference_list(request) self.assertEqual(response.status_code, 400) self.assertEqual( json.loads(response.body), { 'error': "No reference_ids sent. JSON object expected: {\"reference_ids\": [\"id_1\", \"id_2\", ...]}" }) request = testing.DummyRequest(post={'reference_ids': []}) request.json_body = {'reference_ids': []} request.context = testing.DummyResource() response = reference_list(request) self.assertEqual(response.status_code, 400) self.assertEqual( json.loads(response.body), { 'error': "No reference_ids sent. JSON object expected: {\"reference_ids\": [\"id_1\", \"id_2\", ...]}" }) request = testing.DummyRequest( post={'reference_ids': ['a_random_crazy_id']}) request.json_body = {'reference_ids': ['a_random_crazy_id']} request.context = testing.DummyResource() response = reference_list(request) self.assertEqual(response.status_code, 400) self.assertEqual( json.loads(response.body), { 'error': "IDs must be string format of integers. Example JSON object expected: {\"reference_ids\": [\"1\", \"2\"]}" })
def test_reference_list_should_400_for_invalid_data(self): request = testing.DummyRequest(post={'blablabla_ids': ['123']}) request.json_body = {'blablabla_ids': ['123']} request.context = testing.DummyResource() response = reference_list(request) self.assertEqual(response.status_code, 400) self.assertEqual(json.loads(response.body), {'error': "No reference_ids sent. JSON object expected: {\"reference_ids\": [\"id_1\", \"id_2\", ...]}"}) request = testing.DummyRequest(post={'reference_ids': []}) request.json_body = {'reference_ids': []} request.context = testing.DummyResource() response = reference_list(request) self.assertEqual(response.status_code, 400) self.assertEqual(json.loads(response.body), {'error': "No reference_ids sent. JSON object expected: {\"reference_ids\": [\"id_1\", \"id_2\", ...]}"}) request = testing.DummyRequest(post={'reference_ids': ['a_random_crazy_id']}) request.json_body = {'reference_ids': ['a_random_crazy_id']} request.context = testing.DummyResource() response = reference_list(request) self.assertEqual(response.status_code, 400) self.assertEqual(json.loads(response.body), {'error': "IDs must be string format of integers. Example JSON object expected: {\"reference_ids\": [\"1\", \"2\"]}"})
def test_reference_lists_should_return_data_for_valid_ids(self, mock_search): source = factory.SourceFactory() journal = factory.JournalFactory() book = factory.BookFactory() refdbentity = factory.ReferencedbentityFactory() refdoc = factory.ReferenceDocumentFactory(reference_document_id=1) refdoc_2 = factory.ReferenceDocumentFactory(reference_document_id=2) mock_search.return_value = MockQuery([refdoc, refdoc_2]) request = testing.DummyRequest(post={'reference_ids': [refdoc.reference_id, refdoc_2.reference_id]}) request.json_body = {'reference_ids': [refdoc.reference_id, refdoc_2.reference_id]} request.context = testing.DummyResource() response = reference_list(request) self.assertEqual(response, [{'id': refdoc.reference_id, 'text': refdoc.text}, {'id': refdoc.reference_id, 'text': refdoc_2.text}]) self.assertTrue(mock_search.return_value._full_params[0].compare(ReferenceDocument.reference_id.in_([refdoc.reference_id, refdoc_2.reference_id]))) self.assertTrue(mock_search.return_value._full_params[1].compare(ReferenceDocument.document_type == 'Medline'))