@@ -141,44 +141,55 @@ def test_password_manager(self):
141
141
mgr = urllib .request .HTTPPasswordMgr ()
142
142
add = mgr .add_password
143
143
find_user_pass = mgr .find_user_password
144
+
144
145
add ("Some Realm" , "http://example.com/" , "joe" , "password" )
145
146
add ("Some Realm" , "http://example.com/ni" , "ni" , "ni" )
146
- add ("c" , "http://example.com/foo" , "foo" , "ni" )
147
- add ("c" , "http://example.com/bar" , "bar" , "nini" )
148
- add ("b" , "http://example.com/" , "first" , "blah" )
149
- add ("b" , "http://example.com/" , "second" , "spam" )
150
- add ("a" , "http://example.com" , "1" , "a" )
151
147
add ("Some Realm" , "http://c.example.com:3128" , "3" , "c" )
152
148
add ("Some Realm" , "d.example.com" , "4" , "d" )
153
149
add ("Some Realm" , "e.example.com:3128" , "5" , "e" )
154
150
151
+ # For the same realm, password set the highest path is the winner.
155
152
self .assertEqual (find_user_pass ("Some Realm" , "example.com" ),
156
153
('joe' , 'password' ))
157
-
158
- #self.assertEqual(find_user_pass("Some Realm", "http://example.com/ni"),
159
- # ('ni', 'ni'))
160
-
154
+ self .assertEqual (find_user_pass ("Some Realm" , "http://example.com/ni" ),
155
+ ('joe' , 'password' ))
161
156
self .assertEqual (find_user_pass ("Some Realm" , "http://example.com" ),
162
157
('joe' , 'password' ))
163
158
self .assertEqual (find_user_pass ("Some Realm" , "http://example.com/" ),
164
159
('joe' , 'password' ))
165
- self .assertEqual (
166
- find_user_pass ("Some Realm" , "http://example.com/spam" ),
167
- ('joe' , 'password' ))
168
- self .assertEqual (
169
- find_user_pass ("Some Realm" , "http://example.com/spam/spam" ),
170
- ('joe' , 'password' ))
160
+ self .assertEqual (find_user_pass ("Some Realm" ,
161
+ "http://example.com/spam" ),
162
+ ('joe' , 'password' ))
163
+
164
+ self .assertEqual (find_user_pass ("Some Realm" ,
165
+ "http://example.com/spam/spam" ),
166
+ ('joe' , 'password' ))
167
+
168
+ # You can have different passwords for different paths.
169
+
170
+ add ("c" , "http://example.com/foo" , "foo" , "ni" )
171
+ add ("c" , "http://example.com/bar" , "bar" , "nini" )
172
+
171
173
self .assertEqual (find_user_pass ("c" , "http://example.com/foo" ),
172
174
('foo' , 'ni' ))
175
+
173
176
self .assertEqual (find_user_pass ("c" , "http://example.com/bar" ),
174
177
('bar' , 'nini' ))
178
+
179
+ # For the same path, newer password should be considered.
180
+
181
+ add ("b" , "http://example.com/" , "first" , "blah" )
182
+ add ("b" , "http://example.com/" , "second" , "spam" )
183
+
175
184
self .assertEqual (find_user_pass ("b" , "http://example.com/" ),
176
185
('second' , 'spam' ))
177
186
178
187
# No special relationship between a.example.com and example.com:
179
188
189
+ add ("a" , "http://example.com" , "1" , "a" )
180
190
self .assertEqual (find_user_pass ("a" , "http://example.com/" ),
181
191
('1' , 'a' ))
192
+
182
193
self .assertEqual (find_user_pass ("a" , "http://a.example.com/" ),
183
194
(None , None ))
184
195
0 commit comments