From 030516eb290ddbd33429e0a111a07b43480ea6e5 Mon Sep 17 00:00:00 2001 From: Luka Stojanovic Date: Mon, 17 Mar 2014 19:23:08 +0100 Subject: [PATCH 1/2] parse_repository_tag function and accompanying test --- docker/utils/__init__.py | 2 +- docker/utils/utils.py | 12 ++++++++++++ tests/utils_test.py | 18 ++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 tests/utils_test.py diff --git a/docker/utils/__init__.py b/docker/utils/__init__.py index 386a01af..8a85975d 100644 --- a/docker/utils/__init__.py +++ b/docker/utils/__init__.py @@ -1,3 +1,3 @@ from .utils import ( - compare_version, convert_port_bindings, mkbuildcontext, ping, tar + compare_version, convert_port_bindings, mkbuildcontext, ping, tar, parse_repository_tag ) # flake8: noqa diff --git a/docker/utils/utils.py b/docker/utils/utils.py index a4c87785..9edd71a1 100644 --- a/docker/utils/utils.py +++ b/docker/utils/utils.py @@ -114,3 +114,15 @@ def convert_port_bindings(port_bindings): else: result[key] = [_convert_port_binding(v)] return result + + +def parse_repository_tag(repo): + column_index = repo.rfind(':') + if column_index < 0: + return repo, "" + tag = repo[column_index+1:] + slash_index = tag.find('/') + if slash_index < 0: + return repo[:column_index], tag + + return repo, "" diff --git a/tests/utils_test.py b/tests/utils_test.py new file mode 100644 index 00000000..77a14595 --- /dev/null +++ b/tests/utils_test.py @@ -0,0 +1,18 @@ +import unittest + +from docker.utils import parse_repository_tag + + +class UtilsTest(unittest.TestCase): + + def test_parse_repository_tag(self): + self.assertEqual(parse_repository_tag("root"), ("root", "")) + self.assertEqual(parse_repository_tag("root:tag"), ("root", "tag")) + self.assertEqual(parse_repository_tag("user/repo"), ("user/repo", "")) + self.assertEqual(parse_repository_tag("user/repo:tag"), ("user/repo", "tag")) + self.assertEqual(parse_repository_tag("url:5000/repo"), ("url:5000/repo", "")) + self.assertEqual(parse_repository_tag("url:5000/repo:tag"), ("url:5000/repo", "tag")) + + +if __name__ == '__main__': + unittest.main() From 74499e21e426b4ff6a89b9a1f2fc72582675ddcd Mon Sep 17 00:00:00 2001 From: Luka Stojanovic Date: Mon, 24 Mar 2014 16:08:44 +0100 Subject: [PATCH 2/2] make flake happy --- tests/utils_test.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/tests/utils_test.py b/tests/utils_test.py index 77a14595..08b7b386 100644 --- a/tests/utils_test.py +++ b/tests/utils_test.py @@ -6,12 +6,18 @@ from docker.utils import parse_repository_tag class UtilsTest(unittest.TestCase): def test_parse_repository_tag(self): - self.assertEqual(parse_repository_tag("root"), ("root", "")) - self.assertEqual(parse_repository_tag("root:tag"), ("root", "tag")) - self.assertEqual(parse_repository_tag("user/repo"), ("user/repo", "")) - self.assertEqual(parse_repository_tag("user/repo:tag"), ("user/repo", "tag")) - self.assertEqual(parse_repository_tag("url:5000/repo"), ("url:5000/repo", "")) - self.assertEqual(parse_repository_tag("url:5000/repo:tag"), ("url:5000/repo", "tag")) + self.assertEqual(parse_repository_tag("root"), + ("root", "")) + self.assertEqual(parse_repository_tag("root:tag"), + ("root", "tag")) + self.assertEqual(parse_repository_tag("user/repo"), + ("user/repo", "")) + self.assertEqual(parse_repository_tag("user/repo:tag"), + ("user/repo", "tag")) + self.assertEqual(parse_repository_tag("url:5000/repo"), + ("url:5000/repo", "")) + self.assertEqual(parse_repository_tag("url:5000/repo:tag"), + ("url:5000/repo", "tag")) if __name__ == '__main__':