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
|
||||
from urlparse import urljoin
|
||||
from posixpath import join
|
||||
|
||||
import requests
|
||||
|
||||
|
@ -107,7 +108,7 @@ class TUFMetadataAPI(object):
|
|||
return True
|
||||
|
||||
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):
|
||||
""" 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', [
|
||||
(200, valid_response, (valid_response['signed']['targets'], '2020-03-30T18:55:26.594764859-04:00')),
|
||||
|
|
Reference in a new issue