Add some keep_by_hours/get_newer_tags tests

This commit is contained in:
Eric Ball
2018-06-08 10:55:25 -07:00
parent c6fe2d592e
commit 5e37104f24

39
test.py
View File

@@ -1,6 +1,6 @@
import unittest import unittest
from registry import Registry, Requests, get_tags, parse_args, \ from registry import Registry, Requests, get_tags, parse_args, \
delete_tags, delete_tags_by_age, get_error_explanation delete_tags, delete_tags_by_age, get_error_explanation, get_newer_tags
from mock import MagicMock, patch from mock import MagicMock, patch
import requests import requests
@@ -150,7 +150,7 @@ class TestRegistrySend(unittest.TestCase):
headers=self.registry.HEADERS, headers=self.registry.HEADERS,
verify=True) verify=True)
class TestGetrrorExplanation(unittest.TestCase): class TestGetErrorExplanation(unittest.TestCase):
def test_get_tag_digest_404(self): def test_get_tag_digest_404(self):
self.assertEqual(get_error_explanation("delete_tag", "405"), self.assertEqual(get_error_explanation("delete_tag", "405"),
'You might want to set REGISTRY_STORAGE_DELETE_ENABLED: "true" in your registry') 'You might want to set REGISTRY_STORAGE_DELETE_ENABLED: "true" in your registry')
@@ -681,6 +681,39 @@ class TestDeleteTagsByAge(unittest.TestCase):
self.registry, "imagename", True, ["image"], ["latest"]) self.registry, "imagename", True, ["image"], ["latest"])
class TestGetNewerTags(unittest.TestCase):
def setUp(self):
self.registry = Registry()
self.registry.http = MockRequests()
self.get_tag_config_mock = MagicMock(return_value={'mediaType': 'application/vnd.docker.container.image.v1+json', 'size': 12953,
'digest': 'sha256:8d71dfbf239c0015ad66993d55d3954cee2d52d86f829fdff9ccfb9f23b75aa8'})
self.registry.get_tag_config = self.get_tag_config_mock
self.get_image_age_mock = MagicMock(
return_value="2017-12-27T12:47:33.511765448Z")
self.registry.get_image_age = self.get_image_age_mock
self.list_tags_mock = MagicMock(return_value=["image"])
self.registry.list_tags = self.list_tags_mock
self.get_tag_digest_mock = MagicMock()
self.registry.get_tag_digest = self.get_tag_digest_mock
self.registry.http = MockRequests()
self.registry.hostname = "http://testdomain.com"
self.registry.http.reset_return_value(200, "MOCK_DIGEST")
def test_keep_tags_by_age_no_keep(self):
self.assertEqual(
get_newer_tags(self.registry, "imagename", 23, ["latest"]),
[]
)
def test_keep_tags_by_age_keep(self):
self.assertEqual(
get_newer_tags(self.registry, "imagename", 24, ["latest"]),
["latest"]
)
class TestArgParser(unittest.TestCase): class TestArgParser(unittest.TestCase):
def test_no_args(self): def test_no_args(self):
@@ -700,6 +733,7 @@ class TestArgParser(unittest.TestCase):
"--delete-all", "--delete-all",
"--layers", "--layers",
"--delete-by-hours", "24", "--delete-by-hours", "24",
"--keep-by-hours", "24",
"--digest-method", "GET"] "--digest-method", "GET"]
args = parse_args(args_list) args = parse_args(args_list)
self.assertTrue(args.delete) self.assertTrue(args.delete)
@@ -714,6 +748,7 @@ class TestArgParser(unittest.TestCase):
self.assertEqual(args.host, "hostname") self.assertEqual(args.host, "hostname")
self.assertEqual(args.keep_tags, ["keep1", "keep2"]) self.assertEqual(args.keep_tags, ["keep1", "keep2"])
self.assertEqual(args.delete_by_hours, "24") self.assertEqual(args.delete_by_hours, "24")
self.assertEqual(args.keep_by_hours, "24")
self.assertEqual(args.digest_method, "GET") self.assertEqual(args.digest_method, "GET")
def test_default_args(self): def test_default_args(self):