refactor error explanation and tests for it
This commit is contained in:
11
registry.py
11
registry.py
@@ -134,13 +134,16 @@ def decode_base64(data):
|
|||||||
return base64.decodestring(data)
|
return base64.decodestring(data)
|
||||||
|
|
||||||
|
|
||||||
def print_error_explanation(context, error_code):
|
def get_error_explanation(context, error_code):
|
||||||
error_list = {"delete_tag_405": 'You might want to set REGISTRY_STORAGE_DELETE_ENABLED: "true" in your registry',
|
error_list = {"delete_tag_405": 'You might want to set REGISTRY_STORAGE_DELETE_ENABLED: "true" in your registry',
|
||||||
"get_tag_digest_404": "Try adding flag --digest-method=GET"}
|
"get_tag_digest_404": "Try adding flag --digest-method=GET"}
|
||||||
|
|
||||||
key = "%s_%s" % (context, error_code)
|
key = "%s_%s" % (context, error_code)
|
||||||
|
|
||||||
if key in error_list.keys():
|
if key in error_list.keys():
|
||||||
print(error_list[key])
|
return(error_list[key])
|
||||||
|
|
||||||
|
return ''
|
||||||
|
|
||||||
def get_auth_schemes(r,path):
|
def get_auth_schemes(r,path):
|
||||||
""" Returns list of auth schemes(lowcased) if www-authenticate: header exists
|
""" Returns list of auth schemes(lowcased) if www-authenticate: header exists
|
||||||
@@ -276,7 +279,7 @@ class Registry:
|
|||||||
|
|
||||||
if image_headers is None:
|
if image_headers is None:
|
||||||
print(" tag digest not found: {0}.".format(self.last_error))
|
print(" tag digest not found: {0}.".format(self.last_error))
|
||||||
print_error_explanation("get_tag_digest", self.last_error)
|
print(get_error_explanation("get_tag_digest", self.last_error))
|
||||||
return None
|
return None
|
||||||
|
|
||||||
tag_digest = image_headers.headers['Docker-Content-Digest']
|
tag_digest = image_headers.headers['Docker-Content-Digest']
|
||||||
@@ -303,7 +306,7 @@ class Registry:
|
|||||||
|
|
||||||
if delete_result is None:
|
if delete_result is None:
|
||||||
print("failed, error: {0}".format(self.last_error))
|
print("failed, error: {0}".format(self.last_error))
|
||||||
print_error_explanation("delete_tag", self.last_error)
|
print(get_error_explanation("delete_tag", self.last_error))
|
||||||
return False
|
return False
|
||||||
|
|
||||||
tag_digests_to_ignore.append(tag_digest)
|
tag_digests_to_ignore.append(tag_digest)
|
||||||
|
|||||||
12
test.py
12
test.py
@@ -1,5 +1,6 @@
|
|||||||
import unittest
|
import unittest
|
||||||
from registry import Registry, Requests, get_tags, parse_args, delete_tags, delete_tags_by_age
|
from registry import Registry, Requests, get_tags, parse_args, \
|
||||||
|
delete_tags, delete_tags_by_age, get_error_explanation
|
||||||
from mock import MagicMock, patch
|
from mock import MagicMock, patch
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
@@ -149,6 +150,15 @@ class TestRegistrySend(unittest.TestCase):
|
|||||||
headers=self.registry.HEADERS,
|
headers=self.registry.HEADERS,
|
||||||
verify=True)
|
verify=True)
|
||||||
|
|
||||||
|
class TestGetrrorExplanation(unittest.TestCase):
|
||||||
|
def test_get_tag_digest_404(self):
|
||||||
|
self.assertEqual(get_error_explanation("delete_tag", "405"),
|
||||||
|
'You might want to set REGISTRY_STORAGE_DELETE_ENABLED: "true" in your registry')
|
||||||
|
|
||||||
|
def test_delete_digest_405(self):
|
||||||
|
self.assertEqual(get_error_explanation("get_tag_digest", "404"),
|
||||||
|
"Try adding flag --digest-method=GET")
|
||||||
|
|
||||||
|
|
||||||
class TestListImages(unittest.TestCase):
|
class TestListImages(unittest.TestCase):
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user