username and password can be quoted (double or single)

This commit is contained in:
Andrey Pohilko
2017-02-11 08:56:07 +06:00
parent f374ecf0f1
commit 657464d477
2 changed files with 26 additions and 1 deletions

View File

@@ -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)

22
test.py
View File

@@ -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):