From 657464d47709fe7d05b8f8b64184e5443e0456fa Mon Sep 17 00:00:00 2001 From: Andrey Pohilko Date: Sat, 11 Feb 2017 08:56:07 +0600 Subject: [PATCH] username and password can be quoted (double or single) --- registry.py | 5 ++++- test.py | 22 ++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/registry.py b/registry.py index 3ab1e18..96f67ca 100755 --- a/registry.py +++ b/registry.py @@ -62,7 +62,10 @@ class Registry: return (None, None) self.last_error = None - return login.split(':', 1) + (username, password) = login.split(':', 1) + username = username.strip('"').strip("'") + password = password.strip('"').strip("'") + return (username, password) return (None, None) diff --git a/test.py b/test.py index bd520fe..eda92bb 100644 --- a/test.py +++ b/test.py @@ -42,6 +42,28 @@ class TestParseLogin(unittest.TestCase): self.assertEqual(password, None) self.assertEqual(self.registry.last_error, "Please provide -l in the form USER:PASSWORD") + def test_login_args_singlequoted(self): + (username, password) = self.registry.parse_login("'username':password") + self.assertEqual(username, 'username') + self.assertEqual(password, "password") + self.assertEqual(self.registry.last_error, None) + + def test_login_args_doublequoted(self): + (username, password) = self.registry.parse_login('"username":"password"') + self.assertEqual(username, 'username') + self.assertEqual(password, "password") + self.assertEqual(self.registry.last_error, None) + + def test_login_colon_username(self): + """ + this is to test that if username contains colon, + then the result will be invalid in this case + and no error will be printed + """ + (username, password) = self.registry.parse_login("'user:name':'pass:word'") + self.assertEqual(username, 'user') + self.assertEqual(password, "name':'pass:word") + class TestRegistrySend(unittest.TestCase): def setUp(self):