Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/api/views/test_origin.py
Show First 20 Lines • Show All 216 Lines • ▼ Show 20 Lines | def test_api_origin_not_found(self, new_origin): | ||||
self.assertEqual(rv.status_code, 404) | self.assertEqual(rv.status_code, 404) | ||||
self.assertEqual(rv['Content-Type'], 'application/json') | self.assertEqual(rv['Content-Type'], 'application/json') | ||||
self.assertEqual(rv.data, { | self.assertEqual(rv.data, { | ||||
'exception': 'NotFoundExc', | 'exception': 'NotFoundExc', | ||||
'reason': 'Origin with type %s and url %s not found!' % | 'reason': 'Origin with type %s and url %s not found!' % | ||||
(new_origin['type'], new_origin['url']) | (new_origin['type'], new_origin['url']) | ||||
}) | }) | ||||
@patch('swh.web.common.service.idx_storage') | |||||
@given(origin()) | @given(origin()) | ||||
def test_api_origin_metadata_search(self, mock_idx_storage, origin): | def test_api_origin_metadata_search(self, origin): | ||||
with patch('swh.web.common.service.idx_storage') as mock_idx_storage: | |||||
mock_idx_storage.origin_intrinsic_metadata_search_fulltext \ | mock_idx_storage.origin_intrinsic_metadata_search_fulltext \ | ||||
.side_effect = lambda conjunction, limit: [{ | .side_effect = lambda conjunction, limit: [{ | ||||
'from_revision': | 'from_revision': ( | ||||
b'p&\xb7\xc1\xa2\xafVR\x1e\x95\x1c\x01\xed \xf2U\xfa\x05B8', | b'p&\xb7\xc1\xa2\xafVR\x1e\x95\x1c\x01\xed ' | ||||
b'\xf2U\xfa\x05B8'), | |||||
'metadata': {'author': 'Jane Doe'}, | 'metadata': {'author': 'Jane Doe'}, | ||||
'id': origin['id'], | 'id': origin['id'], | ||||
'tool': { | 'tool': { | ||||
'configuration': { | 'configuration': { | ||||
'context': ['NpmMapping', 'CodemetaMapping'], | 'context': ['NpmMapping', 'CodemetaMapping'], | ||||
'type': 'local' | 'type': 'local' | ||||
}, | }, | ||||
'id': 3, | 'id': 3, | ||||
'name': 'swh-metadata-detector', | 'name': 'swh-metadata-detector', | ||||
'version': '0.0.1' | 'version': '0.0.1' | ||||
} | } | ||||
}] | }] | ||||
url = reverse('api-origin-metadata-search', | url = reverse('api-origin-metadata-search', | ||||
query_params={'fulltext': 'Jane Doe'}) | query_params={'fulltext': 'Jane Doe'}) | ||||
rv = self.client.get(url) | rv = self.client.get(url) | ||||
self.assertEqual(rv.status_code, 200, rv.content) | self.assertEqual(rv.status_code, 200, rv.content) | ||||
self.assertEqual(rv['Content-Type'], 'application/json') | self.assertEqual(rv['Content-Type'], 'application/json') | ||||
expected_data = [{ | expected_data = [{ | ||||
'id': origin['id'], | 'id': origin['id'], | ||||
'type': origin['type'], | 'type': origin['type'], | ||||
'url': origin['url'], | 'url': origin['url'], | ||||
'metadata': { | 'metadata': { | ||||
'metadata': {'author': 'Jane Doe'}, | 'metadata': {'author': 'Jane Doe'}, | ||||
'from_revision': '7026b7c1a2af56521e951c01ed20f255fa054238', | 'from_revision': ( | ||||
'7026b7c1a2af56521e951c01ed20f255fa054238'), | |||||
'tool': { | 'tool': { | ||||
'configuration': { | 'configuration': { | ||||
'context': ['NpmMapping', 'CodemetaMapping'], | 'context': ['NpmMapping', 'CodemetaMapping'], | ||||
'type': 'local' | 'type': 'local' | ||||
}, | }, | ||||
'id': 3, | 'id': 3, | ||||
'name': 'swh-metadata-detector', | 'name': 'swh-metadata-detector', | ||||
'version': '0.0.1', | 'version': '0.0.1', | ||||
} | } | ||||
} | } | ||||
}] | }] | ||||
self.assertEqual(rv.data, expected_data) | self.assertEqual(rv.data, expected_data) | ||||
mock_idx_storage.origin_intrinsic_metadata_search_fulltext \ | mock_idx_storage.origin_intrinsic_metadata_search_fulltext \ | ||||
.assert_called_with(conjunction=['Jane Doe'], limit=70) | .assert_called_with(conjunction=['Jane Doe'], limit=70) | ||||
@patch('swh.web.common.service.idx_storage') | |||||
@given(origin()) | @given(origin()) | ||||
def test_api_origin_metadata_search_limit(self, mock_idx_storage, origin): | def test_api_origin_metadata_search_limit(self, origin): | ||||
with patch('swh.web.common.service.idx_storage') as mock_idx_storage: | |||||
mock_idx_storage.origin_intrinsic_metadata_search_fulltext \ | mock_idx_storage.origin_intrinsic_metadata_search_fulltext \ | ||||
.side_effect = lambda conjunction, limit: [{ | .side_effect = lambda conjunction, limit: [{ | ||||
'from_revision': | 'from_revision': ( | ||||
b'p&\xb7\xc1\xa2\xafVR\x1e\x95\x1c\x01\xed \xf2U\xfa\x05B8', | b'p&\xb7\xc1\xa2\xafVR\x1e\x95\x1c\x01\xed ' | ||||
b'\xf2U\xfa\x05B8'), | |||||
'metadata': {'author': 'Jane Doe'}, | 'metadata': {'author': 'Jane Doe'}, | ||||
'id': origin['id'], | 'id': origin['id'], | ||||
'tool': { | 'tool': { | ||||
'configuration': { | 'configuration': { | ||||
'context': ['NpmMapping', 'CodemetaMapping'], | 'context': ['NpmMapping', 'CodemetaMapping'], | ||||
'type': 'local' | 'type': 'local' | ||||
}, | }, | ||||
'id': 3, | 'id': 3, | ||||
'name': 'swh-metadata-detector', | 'name': 'swh-metadata-detector', | ||||
'version': '0.0.1' | 'version': '0.0.1' | ||||
} | } | ||||
}] | }] | ||||
url = reverse('api-origin-metadata-search', | url = reverse('api-origin-metadata-search', | ||||
query_params={'fulltext': 'Jane Doe'}) | query_params={'fulltext': 'Jane Doe'}) | ||||
rv = self.client.get(url) | rv = self.client.get(url) | ||||
self.assertEqual(rv.status_code, 200, rv.content) | self.assertEqual(rv.status_code, 200, rv.content) | ||||
self.assertEqual(rv['Content-Type'], 'application/json') | self.assertEqual(rv['Content-Type'], 'application/json') | ||||
self.assertEqual(len(rv.data), 1) | self.assertEqual(len(rv.data), 1) | ||||
mock_idx_storage.origin_intrinsic_metadata_search_fulltext \ | mock_idx_storage.origin_intrinsic_metadata_search_fulltext \ | ||||
.assert_called_with(conjunction=['Jane Doe'], limit=70) | .assert_called_with(conjunction=['Jane Doe'], limit=70) | ||||
url = reverse('api-origin-metadata-search', | url = reverse('api-origin-metadata-search', | ||||
query_params={'fulltext': 'Jane Doe', | query_params={'fulltext': 'Jane Doe', | ||||
'limit': 10}) | 'limit': 10}) | ||||
rv = self.client.get(url) | rv = self.client.get(url) | ||||
self.assertEqual(rv.status_code, 200, rv.content) | self.assertEqual(rv.status_code, 200, rv.content) | ||||
self.assertEqual(rv['Content-Type'], 'application/json') | self.assertEqual(rv['Content-Type'], 'application/json') | ||||
self.assertEqual(len(rv.data), 1) | self.assertEqual(len(rv.data), 1) | ||||
mock_idx_storage.origin_intrinsic_metadata_search_fulltext \ | mock_idx_storage.origin_intrinsic_metadata_search_fulltext \ | ||||
.assert_called_with(conjunction=['Jane Doe'], limit=10) | .assert_called_with(conjunction=['Jane Doe'], limit=10) | ||||
url = reverse('api-origin-metadata-search', | url = reverse('api-origin-metadata-search', | ||||
query_params={'fulltext': 'Jane Doe', | query_params={'fulltext': 'Jane Doe', | ||||
'limit': 987}) | 'limit': 987}) | ||||
rv = self.client.get(url) | rv = self.client.get(url) | ||||
self.assertEqual(rv.status_code, 200, rv.content) | self.assertEqual(rv.status_code, 200, rv.content) | ||||
self.assertEqual(rv['Content-Type'], 'application/json') | self.assertEqual(rv['Content-Type'], 'application/json') | ||||
self.assertEqual(len(rv.data), 1) | self.assertEqual(len(rv.data), 1) | ||||
mock_idx_storage.origin_intrinsic_metadata_search_fulltext \ | mock_idx_storage.origin_intrinsic_metadata_search_fulltext \ | ||||
.assert_called_with(conjunction=['Jane Doe'], limit=100) | .assert_called_with(conjunction=['Jane Doe'], limit=100) | ||||
@patch('swh.web.common.service.idx_storage') | @patch('swh.web.common.service.idx_storage') | ||||
def test_api_origin_metadata_search_invalid(self, mock_idx_storage): | def test_api_origin_metadata_search_invalid(self, mock_idx_storage): | ||||
url = reverse('api-origin-metadata-search') | url = reverse('api-origin-metadata-search') | ||||
rv = self.client.get(url) | rv = self.client.get(url) | ||||
self.assertEqual(rv.status_code, 400, rv.content) | self.assertEqual(rv.status_code, 400, rv.content) | ||||
Show All 40 Lines |