Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/api/views/test_origin.py
Show First 20 Lines • Show All 107 Lines • ▼ Show 20 Lines | class OriginApiTestCase(WebTestCase, APITestCase): | ||||
@given(new_origin(), visit_dates(3), new_snapshots(3)) | @given(new_origin(), visit_dates(3), new_snapshots(3)) | ||||
def test_api_lookup_origin_visits(self, new_origin, visit_dates, | def test_api_lookup_origin_visits(self, new_origin, visit_dates, | ||||
new_snapshots): | new_snapshots): | ||||
self.storage.origin_add_one(new_origin) | self.storage.origin_add_one(new_origin) | ||||
for i, visit_date in enumerate(visit_dates): | for i, visit_date in enumerate(visit_dates): | ||||
origin_visit = self.storage.origin_visit_add( | origin_visit = self.storage.origin_visit_add( | ||||
new_origin['url'], visit_date) | new_origin['url'], visit_date, type='git') | ||||
self.storage.snapshot_add([new_snapshots[i]]) | self.storage.snapshot_add([new_snapshots[i]]) | ||||
self.storage.origin_visit_update( | self.storage.origin_visit_update( | ||||
new_origin['url'], origin_visit['visit'], | new_origin['url'], origin_visit['visit'], | ||||
snapshot=new_snapshots[i]['id']) | snapshot=new_snapshots[i]['id']) | ||||
all_visits = list(reversed(get_origin_visits(new_origin))) | all_visits = list(reversed(get_origin_visits(new_origin))) | ||||
for last_visit, expected_visits in ( | for last_visit, expected_visits in ( | ||||
Show All 26 Lines | class OriginApiTestCase(WebTestCase, APITestCase): | ||||
@given(new_origin(), visit_dates(3), new_snapshots(3)) | @given(new_origin(), visit_dates(3), new_snapshots(3)) | ||||
def test_api_lookup_origin_visits_by_id(self, new_origin, visit_dates, | def test_api_lookup_origin_visits_by_id(self, new_origin, visit_dates, | ||||
new_snapshots): | new_snapshots): | ||||
self.storage.origin_add_one(new_origin) | self.storage.origin_add_one(new_origin) | ||||
for i, visit_date in enumerate(visit_dates): | for i, visit_date in enumerate(visit_dates): | ||||
origin_visit = self.storage.origin_visit_add( | origin_visit = self.storage.origin_visit_add( | ||||
new_origin['url'], visit_date) | new_origin['url'], visit_date, type='git') | ||||
self.storage.snapshot_add([new_snapshots[i]]) | self.storage.snapshot_add([new_snapshots[i]]) | ||||
self.storage.origin_visit_update( | self.storage.origin_visit_update( | ||||
new_origin['url'], origin_visit['visit'], | new_origin['url'], origin_visit['visit'], | ||||
snapshot=new_snapshots[i]['id']) | snapshot=new_snapshots[i]['id']) | ||||
all_visits = list(reversed(get_origin_visits(new_origin))) | all_visits = list(reversed(get_origin_visits(new_origin))) | ||||
for last_visit, expected_visits in ( | for last_visit, expected_visits in ( | ||||
Show All 26 Lines | class OriginApiTestCase(WebTestCase, APITestCase): | ||||
@given(new_origin(), visit_dates(3), new_snapshots(3)) | @given(new_origin(), visit_dates(3), new_snapshots(3)) | ||||
def test_api_lookup_origin_visit(self, new_origin, visit_dates, | def test_api_lookup_origin_visit(self, new_origin, visit_dates, | ||||
new_snapshots): | new_snapshots): | ||||
self.storage.origin_add_one(new_origin) | self.storage.origin_add_one(new_origin) | ||||
for i, visit_date in enumerate(visit_dates): | for i, visit_date in enumerate(visit_dates): | ||||
origin_visit = self.storage.origin_visit_add( | origin_visit = self.storage.origin_visit_add( | ||||
new_origin['url'], visit_date) | new_origin['url'], visit_date, type='git') | ||||
visit_id = origin_visit['visit'] | visit_id = origin_visit['visit'] | ||||
self.storage.snapshot_add([new_snapshots[i]]) | self.storage.snapshot_add([new_snapshots[i]]) | ||||
self.storage.origin_visit_update( | self.storage.origin_visit_update( | ||||
new_origin['url'], origin_visit['visit'], | new_origin['url'], origin_visit['visit'], | ||||
snapshot=new_snapshots[i]['id']) | snapshot=new_snapshots[i]['id']) | ||||
url = reverse('api-1-origin-visit', | url = reverse('api-1-origin-visit', | ||||
url_args={'origin_url': new_origin['url'], | url_args={'origin_url': new_origin['url'], | ||||
'visit_id': visit_id}) | 'visit_id': visit_id}) | ||||
Show All 21 Lines | class OriginApiTestCase(WebTestCase, APITestCase): | ||||
def test_api_lookup_origin_visit_latest( | def test_api_lookup_origin_visit_latest( | ||||
self, new_origin, visit_dates, new_snapshots): | self, new_origin, visit_dates, new_snapshots): | ||||
self.storage.origin_add_one(new_origin) | self.storage.origin_add_one(new_origin) | ||||
visit_dates.sort() | visit_dates.sort() | ||||
visit_ids = [] | visit_ids = [] | ||||
for i, visit_date in enumerate(visit_dates): | for i, visit_date in enumerate(visit_dates): | ||||
origin_visit = self.storage.origin_visit_add( | origin_visit = self.storage.origin_visit_add( | ||||
new_origin['url'], visit_date) | new_origin['url'], visit_date, type='git') | ||||
visit_ids.append(origin_visit['visit']) | visit_ids.append(origin_visit['visit']) | ||||
self.storage.snapshot_add([new_snapshots[0]]) | self.storage.snapshot_add([new_snapshots[0]]) | ||||
self.storage.origin_visit_update( | self.storage.origin_visit_update( | ||||
new_origin['url'], visit_ids[0], | new_origin['url'], visit_ids[0], | ||||
snapshot=new_snapshots[0]['id']) | snapshot=new_snapshots[0]['id']) | ||||
url = reverse('api-1-origin-visit-latest', | url = reverse('api-1-origin-visit-latest', | ||||
Show All 18 Lines | class OriginApiTestCase(WebTestCase, APITestCase): | ||||
@given(new_origin(), visit_dates(2), new_snapshots(1)) | @given(new_origin(), visit_dates(2), new_snapshots(1)) | ||||
def test_api_lookup_origin_visit_latest_with_snapshot( | def test_api_lookup_origin_visit_latest_with_snapshot( | ||||
self, new_origin, visit_dates, new_snapshots): | self, new_origin, visit_dates, new_snapshots): | ||||
self.storage.origin_add_one(new_origin) | self.storage.origin_add_one(new_origin) | ||||
visit_dates.sort() | visit_dates.sort() | ||||
visit_ids = [] | visit_ids = [] | ||||
for i, visit_date in enumerate(visit_dates): | for i, visit_date in enumerate(visit_dates): | ||||
origin_visit = self.storage.origin_visit_add( | origin_visit = self.storage.origin_visit_add( | ||||
new_origin['url'], visit_date) | new_origin['url'], visit_date, type='git') | ||||
visit_ids.append(origin_visit['visit']) | visit_ids.append(origin_visit['visit']) | ||||
self.storage.snapshot_add([new_snapshots[0]]) | self.storage.snapshot_add([new_snapshots[0]]) | ||||
self.storage.origin_visit_update( | self.storage.origin_visit_update( | ||||
new_origin['url'], visit_ids[0], | new_origin['url'], visit_ids[0], | ||||
snapshot=new_snapshots[0]['id']) | snapshot=new_snapshots[0]['id']) | ||||
url = reverse('api-1-origin-visit-latest', | url = reverse('api-1-origin-visit-latest', | ||||
▲ Show 20 Lines • Show All 99 Lines • ▼ Show 20 Lines | def test_api_origin_by_url(self, origin): | ||||
url_args={'origin_url': origin['url']}) | url_args={'origin_url': origin['url']}) | ||||
expected_origin['origin_visits_url'] = origin_visits_url | expected_origin['origin_visits_url'] = origin_visits_url | ||||
self.assertEqual(rv.status_code, 200, rv.data) | self.assertEqual(rv.status_code, 200, rv.data) | ||||
self.assertEqual(rv['Content-Type'], 'application/json') | self.assertEqual(rv['Content-Type'], 'application/json') | ||||
self.assertEqual(rv.data, expected_origin) | self.assertEqual(rv.data, expected_origin) | ||||
@given(origin()) | |||||
def test_api_origin_by_type_url(self, origin): | |||||
url = reverse('api-1-origin', | |||||
url_args={'origin_type': origin['type'], | |||||
'origin_url': origin['url']}) | |||||
rv = self.client.get(url) | |||||
expected_origin = self.origin_get(origin) | |||||
origin_visits_url = reverse('api-1-origin-visits', | |||||
url_args={'origin_url': origin['url']}) | |||||
expected_origin['origin_visits_url'] = origin_visits_url | |||||
self.assertEqual(rv.status_code, 200, rv.data) | |||||
self.assertEqual(rv['Content-Type'], 'application/json') | |||||
self.assertEqual(rv.data, expected_origin) | |||||
@given(new_origin()) | @given(new_origin()) | ||||
def test_api_origin_not_found(self, new_origin): | def test_api_origin_not_found(self, new_origin): | ||||
url = reverse('api-1-origin', | url = reverse('api-1-origin', | ||||
url_args={'origin_type': new_origin['type'], | url_args={'origin_url': new_origin['url']}) | ||||
'origin_url': new_origin['url']}) | |||||
rv = self.client.get(url) | rv = self.client.get(url) | ||||
self.assertEqual(rv.status_code, 404, rv.data) | self.assertEqual(rv.status_code, 404, rv.data) | ||||
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 %s not found!' % new_origin['url'] | 'reason': 'Origin with url %s not found!' % new_origin['url'] | ||||
}) | }) | ||||
@pytest.mark.origin_id | @pytest.mark.origin_id | ||||
def test_api_origin_search(self): | def test_api_origin_search(self): | ||||
expected_origins = { | expected_origins = { | ||||
'https://github.com/wcoder/highlightjs-line-numbers.js', | 'https://github.com/wcoder/highlightjs-line-numbers.js', | ||||
'https://github.com/memononen/libtess2', | 'https://github.com/memononen/libtess2', | ||||
} | } | ||||
▲ Show 20 Lines • Show All 86 Lines • ▼ Show 20 Lines | def test_api_origin_metadata_search(self, origin): | ||||
url = reverse('api-1-origin-metadata-search', | url = reverse('api-1-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 = [{ | ||||
'type': origin['type'], | |||||
'url': origin['url'], | 'url': origin['url'], | ||||
'metadata': { | 'metadata': { | ||||
'metadata': {'author': 'Jane Doe'}, | 'metadata': {'author': 'Jane Doe'}, | ||||
'from_revision': ( | 'from_revision': ( | ||||
'7026b7c1a2af56521e951c01ed20f255fa054238'), | '7026b7c1a2af56521e951c01ed20f255fa054238'), | ||||
'tool': { | 'tool': { | ||||
'configuration': { | 'configuration': { | ||||
'context': ['NpmMapping', 'CodemetaMapping'], | 'context': ['NpmMapping', 'CodemetaMapping'], | ||||
▲ Show 20 Lines • Show All 83 Lines • ▼ Show 20 Lines | def test_api_origin_intrinsic_metadata(self, origin): | ||||
}, | }, | ||||
'id': 3, | 'id': 3, | ||||
'name': 'swh-metadata-detector', | 'name': 'swh-metadata-detector', | ||||
'version': '0.0.1' | 'version': '0.0.1' | ||||
} | } | ||||
}] | }] | ||||
url = reverse('api-origin-intrinsic-metadata', | url = reverse('api-origin-intrinsic-metadata', | ||||
url_args={'origin_type': origin['type'], | url_args={'origin_url': origin['url']}) | ||||
'origin_url': origin['url']}) | |||||
rv = self.client.get(url) | rv = self.client.get(url) | ||||
mock_idx_storage.origin_intrinsic_metadata_get \ | mock_idx_storage.origin_intrinsic_metadata_get \ | ||||
.assert_called_once_with([origin['url']]) | .assert_called_once_with([origin['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 = {'author': 'Jane Doe'} | expected_data = {'author': 'Jane Doe'} | ||||
self.assertEqual(rv.data, expected_data) | self.assertEqual(rv.data, expected_data) | ||||
Show All 9 Lines |