|
3 | 3 | from openid.message import * |
4 | 4 | from openid.server import server |
5 | 5 |
|
| 6 | +import warnings |
| 7 | +warnings.filterwarnings('ignore', module=__name__, |
| 8 | + message='"none" used as a policy URI') |
| 9 | + |
6 | 10 | import unittest |
7 | 11 |
|
8 | 12 | class PapeRequestTestCase(unittest.TestCase): |
@@ -246,8 +250,11 @@ def test_add_policy_uri(self): |
246 | 250 | pape.AUTH_PHISHING_RESISTANT], |
247 | 251 | self.resp.auth_policies) |
248 | 252 |
|
| 253 | + self.failUnlessRaises(RuntimeError, self.resp.addPolicyURI, |
| 254 | + pape.AUTH_NONE) |
| 255 | + |
249 | 256 | def test_getExtensionArgs(self): |
250 | | - self.failUnlessEqual({'auth_policies': 'none'}, |
| 257 | + self.failUnlessEqual({'auth_policies': pape.AUTH_NONE}, |
251 | 258 | self.resp.getExtensionArgs()) |
252 | 259 | self.resp.addPolicyURI('http://uri') |
253 | 260 | self.failUnlessEqual({'auth_policies': 'http://uri'}, |
@@ -280,11 +287,52 @@ def test_parseExtensionArgs(self): |
280 | 287 | self.failUnlessEqual(['http://foo','http://bar'], |
281 | 288 | self.resp.auth_policies) |
282 | 289 |
|
| 290 | + def test_parseExtensionArgs_valid_none(self): |
| 291 | + args = {'auth_policies': pape.AUTH_NONE} |
| 292 | + self.resp.parseExtensionArgs(args) |
| 293 | + self.failUnlessEqual([], self.resp.auth_policies) |
| 294 | + |
| 295 | + def test_parseExtensionArgs_old_none(self): |
| 296 | + args = {'auth_policies': 'none'} |
| 297 | + self.resp.parseExtensionArgs(args) |
| 298 | + self.failUnlessEqual([], self.resp.auth_policies) |
| 299 | + |
| 300 | + def test_parseExtensionArgs_old_none_strict(self): |
| 301 | + args = {'auth_policies': 'none'} |
| 302 | + self.failUnlessRaises(ValueError, |
| 303 | + self.resp.parseExtensionArgs, args, strict=True) |
| 304 | + |
283 | 305 | def test_parseExtensionArgs_empty(self): |
284 | 306 | self.resp.parseExtensionArgs({}) |
285 | 307 | self.failUnlessEqual(None, self.resp.auth_time) |
286 | 308 | self.failUnlessEqual([], self.resp.auth_policies) |
287 | 309 |
|
| 310 | + def test_parseExtensionArgs_empty_strict(self): |
| 311 | + self.failUnlessRaises(ValueError, |
| 312 | + self.resp.parseExtensionArgs, {}, strict=True) |
| 313 | + |
| 314 | + def test_parseExtensionArgs_ignore_superfluous_none(self): |
| 315 | + policies = [pape.AUTH_NONE, pape.AUTH_MULTI_FACTOR_PHYSICAL] |
| 316 | + |
| 317 | + args = { |
| 318 | + 'auth_policies': ' '.join(policies), |
| 319 | + } |
| 320 | + |
| 321 | + self.resp.parseExtensionArgs(args, strict=False) |
| 322 | + |
| 323 | + self.assertEqual([pape.AUTH_MULTI_FACTOR_PHYSICAL], |
| 324 | + self.resp.auth_policies) |
| 325 | + |
| 326 | + def test_parseExtensionArgs_none_strict(self): |
| 327 | + policies = [pape.AUTH_NONE, pape.AUTH_MULTI_FACTOR_PHYSICAL] |
| 328 | + |
| 329 | + args = { |
| 330 | + 'auth_policies': ' '.join(policies), |
| 331 | + } |
| 332 | + |
| 333 | + self.failUnlessRaises(ValueError, self.resp.parseExtensionArgs, |
| 334 | + args, strict=True) |
| 335 | + |
288 | 336 | def test_parseExtensionArgs_strict_bogus1(self): |
289 | 337 | args = {'auth_policies': 'http://foo http://bar', |
290 | 338 | 'auth_time': 'yesterday'} |
|
0 commit comments