Add unit tests for gun calculation
This commit is contained in:
parent
70ae34357f
commit
883692345b
2 changed files with 17 additions and 1 deletions
|
@ -1,5 +1,6 @@
|
||||||
import logging
|
import logging
|
||||||
from urlparse import urljoin
|
from urlparse import urljoin
|
||||||
|
from posixpath import join
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
|
@ -107,7 +108,7 @@ class TUFMetadataAPI(object):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def _gun(self, namespace, repository):
|
def _gun(self, namespace, repository):
|
||||||
return urljoin(self._gun_prefix, namespace, repository)
|
return join(self._gun_prefix, namespace, repository)
|
||||||
|
|
||||||
def _parse_signed(self, json_response):
|
def _parse_signed(self, json_response):
|
||||||
""" Attempts to parse the targets from a metadata response """
|
""" Attempts to parse the targets from a metadata response """
|
||||||
|
|
|
@ -33,6 +33,21 @@ valid_response = {
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('tuf_prefix,server_hostname,namespace,repo,gun', [
|
||||||
|
("quay.dev", "quay.io", "ns", "repo", "quay.dev/ns/repo"),
|
||||||
|
(None, "quay.io", "ns", "repo", "quay.io/ns/repo"),
|
||||||
|
("quay.dev/", "quay.io", "ns", "repo", "quay.dev/ns/repo"),
|
||||||
|
(None, "quay.io/", "ns", "repo", "quay.io/ns/repo"),
|
||||||
|
(None, "localhost:5000/", "ns", "repo", "localhost:5000/ns/repo"),
|
||||||
|
(None, "localhost:5000", "ns", "repo", "localhost:5000/ns/repo"),
|
||||||
|
])
|
||||||
|
def test_gun(tuf_prefix, server_hostname, namespace, repo, gun):
|
||||||
|
app = Flask(__name__)
|
||||||
|
app.config.from_object(testconfig.TestConfig())
|
||||||
|
app.config['TUF_GUN_PREFIX'] = tuf_prefix
|
||||||
|
app.config['SERVER_HOSTNAME'] = server_hostname
|
||||||
|
tuf_api = api.TUFMetadataAPI(app, app.config)
|
||||||
|
assert gun == tuf_api._gun(namespace, repo)
|
||||||
|
|
||||||
@pytest.mark.parametrize('response_code,response_body,expected', [
|
@pytest.mark.parametrize('response_code,response_body,expected', [
|
||||||
(200, valid_response, (valid_response['signed']['targets'], '2020-03-30T18:55:26.594764859-04:00')),
|
(200, valid_response, (valid_response['signed']['targets'], '2020-03-30T18:55:26.594764859-04:00')),
|
||||||
|
|
Reference in a new issue