Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/api/views/test_content.py
Show All 17 Lines | def test_api_content_filetype(api_client, indexer_data, content): | ||||
indexer_data.content_add_mimetype(content['sha1']) | indexer_data.content_add_mimetype(content['sha1']) | ||||
url = reverse('api-1-content-filetype', | url = reverse('api-1-content-filetype', | ||||
url_args={'q': 'sha1_git:%s' % content['sha1_git']}) | url_args={'q': 'sha1_git:%s' % content['sha1_git']}) | ||||
rv = api_client.get(url) | rv = api_client.get(url) | ||||
assert rv.status_code == 200, rv.data | assert rv.status_code == 200, rv.data | ||||
assert rv['Content-Type'] == 'application/json' | assert rv['Content-Type'] == 'application/json' | ||||
content_url = reverse('api-1-content', | content_url = reverse('api-1-content', | ||||
url_args={'q': 'sha1:%s' % content['sha1']}) | url_args={'q': 'sha1:%s' % content['sha1']}, | ||||
request=rv.wsgi_request) | |||||
expected_data = indexer_data.content_get_mimetype(content['sha1']) | expected_data = indexer_data.content_get_mimetype(content['sha1']) | ||||
expected_data['content_url'] = content_url | expected_data['content_url'] = content_url | ||||
assert rv.data == expected_data | assert rv.data == expected_data | ||||
def test_api_content_filetype_sha_not_found(api_client): | def test_api_content_filetype_sha_not_found(api_client): | ||||
unknown_content_ = random_content() | unknown_content_ = random_content() | ||||
Show All 16 Lines | def test_api_content_language(api_client, indexer_data, content): | ||||
indexer_data.content_add_language(content['sha1']) | indexer_data.content_add_language(content['sha1']) | ||||
url = reverse('api-1-content-language', | url = reverse('api-1-content-language', | ||||
url_args={'q': 'sha1_git:%s' % content['sha1_git']}) | url_args={'q': 'sha1_git:%s' % content['sha1_git']}) | ||||
rv = api_client.get(url) | rv = api_client.get(url) | ||||
assert rv.status_code == 200, rv.data | assert rv.status_code == 200, rv.data | ||||
assert rv['Content-Type'] == 'application/json' | assert rv['Content-Type'] == 'application/json' | ||||
content_url = reverse('api-1-content', | content_url = reverse('api-1-content', | ||||
url_args={'q': 'sha1:%s' % content['sha1']}) | url_args={'q': 'sha1:%s' % content['sha1']}, | ||||
request=rv.wsgi_request) | |||||
expected_data = indexer_data.content_get_language(content['sha1']) | expected_data = indexer_data.content_get_language(content['sha1']) | ||||
expected_data['content_url'] = content_url | expected_data['content_url'] = content_url | ||||
assert rv.data == expected_data | assert rv.data == expected_data | ||||
def test_api_content_language_sha_not_found(api_client): | def test_api_content_language_sha_not_found(api_client): | ||||
unknown_content_ = random_content() | unknown_content_ = random_content() | ||||
Show All 33 Lines | for entry in rv.data: | ||||
content_sha1 = entry['sha1'] | content_sha1 = entry['sha1'] | ||||
expected_entry = expected_data[content_sha1] | expected_entry = expected_data[content_sha1] | ||||
for key, view_name in (('content_url', 'api-1-content'), | for key, view_name in (('content_url', 'api-1-content'), | ||||
('data_url', 'api-1-content-raw'), | ('data_url', 'api-1-content-raw'), | ||||
('license_url', 'api-1-content-license'), | ('license_url', 'api-1-content-license'), | ||||
('language_url', 'api-1-content-language'), | ('language_url', 'api-1-content-language'), | ||||
('filetype_url', 'api-1-content-filetype')): | ('filetype_url', 'api-1-content-filetype')): | ||||
expected_entry[key] = reverse( | expected_entry[key] = reverse( | ||||
view_name, url_args={'q': 'sha1:%s' % content_sha1}) | view_name, url_args={'q': 'sha1:%s' % content_sha1}, | ||||
request=rv.wsgi_request) | |||||
expected_entry['sha1'] = content_sha1 | expected_entry['sha1'] = content_sha1 | ||||
del expected_entry['id'] | del expected_entry['id'] | ||||
assert entry == expected_entry | assert entry == expected_entry | ||||
assert 'Link' not in rv | assert 'Link' not in rv | ||||
url = reverse('api-1-content-symbol', | url = reverse('api-1-content-symbol', | ||||
url_args={'q': contents_with_ctags['symbol_name']}, | url_args={'q': contents_with_ctags['symbol_name']}, | ||||
query_params={'per_page': 2}) | query_params={'per_page': 2}) | ||||
rv = api_client.get(url) | rv = api_client.get(url) | ||||
next_url = rv.wsgi_request.build_absolute_uri( | next_url = reverse('api-1-content-symbol', | ||||
reverse('api-1-content-symbol', | |||||
url_args={'q': contents_with_ctags['symbol_name']}, | url_args={'q': contents_with_ctags['symbol_name']}, | ||||
query_params={'last_sha1': rv.data[1]['sha1'], | query_params={'last_sha1': rv.data[1]['sha1'], | ||||
'per_page': 2})) | 'per_page': 2}, | ||||
request=rv.wsgi_request), | |||||
assert rv['Link'] == '<%s>; rel="next"' % next_url | assert rv['Link'] == '<%s>; rel="next"' % next_url | ||||
def test_api_content_symbol_not_found(api_client): | def test_api_content_symbol_not_found(api_client): | ||||
url = reverse('api-1-content-symbol', url_args={'q': 'bar'}) | url = reverse('api-1-content-symbol', url_args={'q': 'bar'}) | ||||
rv = api_client.get(url) | rv = api_client.get(url) | ||||
assert rv.status_code == 404, rv.data | assert rv.status_code == 404, rv.data | ||||
Show All 12 Lines | def test_api_content_ctags(api_client, indexer_data, content): | ||||
indexer_data.content_add_ctags(content['sha1']) | indexer_data.content_add_ctags(content['sha1']) | ||||
url = reverse('api-1-content-ctags', | url = reverse('api-1-content-ctags', | ||||
url_args={'q': 'sha1_git:%s' % content['sha1_git']}) | url_args={'q': 'sha1_git:%s' % content['sha1_git']}) | ||||
rv = api_client.get(url) | rv = api_client.get(url) | ||||
assert rv.status_code == 200, rv.data | assert rv.status_code == 200, rv.data | ||||
assert rv['Content-Type'] == 'application/json' | assert rv['Content-Type'] == 'application/json' | ||||
content_url = reverse('api-1-content', | content_url = reverse('api-1-content', | ||||
url_args={'q': 'sha1:%s' % content['sha1']}) | url_args={'q': 'sha1:%s' % content['sha1']}, | ||||
request=rv.wsgi_request) | |||||
expected_data = list(indexer_data.content_get_ctags(content['sha1'])) | expected_data = list(indexer_data.content_get_ctags(content['sha1'])) | ||||
for e in expected_data: | for e in expected_data: | ||||
e['content_url'] = content_url | e['content_url'] = content_url | ||||
assert rv.data == expected_data | assert rv.data == expected_data | ||||
@pytest.mark.skipif(fossology_missing, | @pytest.mark.skipif(fossology_missing, | ||||
reason="requires fossology-nomossa installed") | reason="requires fossology-nomossa installed") | ||||
@given(content()) | @given(content()) | ||||
def test_api_content_license(api_client, indexer_data, content): | def test_api_content_license(api_client, indexer_data, content): | ||||
indexer_data.content_add_license(content['sha1']) | indexer_data.content_add_license(content['sha1']) | ||||
url = reverse('api-1-content-license', | url = reverse('api-1-content-license', | ||||
url_args={'q': 'sha1_git:%s' % content['sha1_git']}) | url_args={'q': 'sha1_git:%s' % content['sha1_git']}) | ||||
rv = api_client.get(url) | rv = api_client.get(url) | ||||
assert rv.status_code == 200, rv.data | assert rv.status_code == 200, rv.data | ||||
assert rv['Content-Type'] == 'application/json' | assert rv['Content-Type'] == 'application/json' | ||||
content_url = reverse('api-1-content', | content_url = reverse('api-1-content', | ||||
url_args={'q': 'sha1:%s' % content['sha1']}) | url_args={'q': 'sha1:%s' % content['sha1']}, | ||||
request=rv.wsgi_request) | |||||
expected_data = indexer_data.content_get_license(content['sha1']) | expected_data = indexer_data.content_get_license(content['sha1']) | ||||
expected_data['content_url'] = content_url | expected_data['content_url'] = content_url | ||||
assert rv.data == expected_data | assert rv.data == expected_data | ||||
def test_api_content_license_sha_not_found(api_client): | def test_api_content_license_sha_not_found(api_client): | ||||
unknown_content_ = random_content() | unknown_content_ = random_content() | ||||
Show All 18 Lines | def test_api_content_metadata(api_client, archive_data, content): | ||||
assert rv.status_code == 200, rv.data | assert rv.status_code == 200, rv.data | ||||
assert rv['Content-Type'] == 'application/json' | assert rv['Content-Type'] == 'application/json' | ||||
expected_data = archive_data.content_get_metadata(content['sha1']) | expected_data = archive_data.content_get_metadata(content['sha1']) | ||||
for key, view_name in (('data_url', 'api-1-content-raw'), | for key, view_name in (('data_url', 'api-1-content-raw'), | ||||
('license_url', 'api-1-content-license'), | ('license_url', 'api-1-content-license'), | ||||
('language_url', 'api-1-content-language'), | ('language_url', 'api-1-content-language'), | ||||
('filetype_url', 'api-1-content-filetype')): | ('filetype_url', 'api-1-content-filetype')): | ||||
expected_data[key] = reverse( | expected_data[key] = reverse( | ||||
view_name, url_args={'q': 'sha1:%s' % content['sha1']}) | view_name, url_args={'q': 'sha1:%s' % content['sha1']}, | ||||
request=rv.wsgi_request) | |||||
assert rv.data == expected_data | assert rv.data == expected_data | ||||
def test_api_content_not_found_as_json(api_client): | def test_api_content_not_found_as_json(api_client): | ||||
unknown_content_ = random_content() | unknown_content_ = random_content() | ||||
url = reverse('api-1-content', | url = reverse('api-1-content', | ||||
url_args={'q': 'sha1:%s' % unknown_content_['sha1']}) | url_args={'q': 'sha1:%s' % unknown_content_['sha1']}) | ||||
▲ Show 20 Lines • Show All 166 Lines • Show Last 20 Lines |