Comments
Patch
@@ -314,9 +314,10 @@ class URI(object):
@username.setter
def username(self, username):
+ password = self.password
self.userinfo = username
- if self.password:
- self.userinfo += ":%s" % self.password
+ if password:
+ self.userinfo += ":%s" % password
@property
def password(self):
@@ -274,6 +274,20 @@ class URITest(unittest.TestCase):
self.assertEqual(uri.username, test['username'])
self.assertEqual(uri.password, test['password'])
+ # make sure changing the values doesn't do anything unexpected
+ uri.username = 'changeme'
+ self.assertEqual(uri.username, 'changeme')
+ self.assertEqual(uri.password, test['password'])
+ uri.password = 'insecure'
+ self.assertEqual(uri.username, 'changeme')
+ self.assertEqual(uri.password, 'insecure')
+
+ # reset back after our trickery
+ uri.userinfo = test['userinfo']
+ self.assertEqual(uri.userinfo, test['userinfo'])
+ self.assertEqual(uri.username, test['username'])
+ self.assertEqual(uri.password, test['password'])
+
uri.hostname = test['hostname']
self.assertEqual(uri.hostname, test['hostname'])
self.assertEqual(uri.hostport, test['hostname'])
When setting the username after already having set the password, the password was unexpectedly reset. This change fixes this issue and introduces unit tests to make sure it doesn't happen again. Signed-off-by: Olof Johansson <olof.johansson@axis.com> --- lib/bb/fetch2/__init__.py | 5 +++-- lib/bb/tests/fetch.py | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-)