Skip to content

Commit

Permalink
Return None when urls cannot be created for a maven package #505
Browse files Browse the repository at this point in the history
    * Update tests

Signed-off-by: Jono Yang <[email protected]>
  • Loading branch information
JonoYang committed Jul 22, 2024
1 parent 5b01529 commit a0edd71
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 0 deletions.
7 changes: 7 additions & 0 deletions minecode/tests/test_maven.py
Original file line number Diff line number Diff line change
Expand Up @@ -711,6 +711,13 @@ def test_get_pom_text(self, regen=FIXTURES_REGEN):
f.write(pom_contents)
self.assertEqual(self.expected_pom_contents, pom_contents)

pom_contents = maven_visitor.get_pom_text(
namespace='',
name='does-not-exist',
version='1.0',
)
self.assertFalse(pom_contents)

def test_get_package_sha1(self):
sha1 = maven_visitor.get_package_sha1(self.scan_package)
expected_sha1 = '60c708f55deeb7c5dfce8a7886ef09cbc1388eca'
Expand Down
2 changes: 2 additions & 0 deletions minecode/visitors/maven.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,8 @@ def get_pom_text(namespace, name, version, qualifiers={}, base_url=MAVEN_BASE_UR
qualifiers=qualifiers,
base_url=base_url,
)
if not urls:
return
# Get and parse POM info
pom_url = urls['api_data_url']
# TODO: manage different types of errors (404, etc.)
Expand Down
17 changes: 17 additions & 0 deletions packagedb/tests/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -1132,6 +1132,23 @@ def test_package_api_index_packages_priority(self):
priority_resource_uri = PriorityResourceURI.objects.get(package_url=purl)
self.assertEqual(0, priority_resource_uri.priority)

def test_collect_errors(self):
invalid_purl = 'pkg:asdf1'
response = self.client.get(f'/api/collect/?purl={invalid_purl}')
self.assertEqual(status.HTTP_400_BAD_REQUEST, response.status_code)
expected_status = {'purl': ["purl validation error: purl is missing the required type component: 'pkg:asdf1'."]}
self.assertEqual(expected_status, response.data['errors'])

purl_str = 'pkg:maven/[email protected]'
response = self.client.get(f'/api/collect/?purl={purl_str}')
self.assertEqual(status.HTTP_400_BAD_REQUEST, response.status_code)
expected_status = (
'error(s) occurred when fetching metadata for pkg:maven/[email protected]: '
'Package does not exist on maven: pkg:maven/[email protected]\n'
'Package does not exist on maven: pkg:maven/[email protected]?classifier=sources\n'
)
self.assertEqual(expected_status, response.data['status'])


class ResourceApiTestCase(TestCase):

Expand Down

0 comments on commit a0edd71

Please sign in to comment.