Mercurial > p > roundup > code
comparison roundup/password.py @ 7185:8e8d111fcdcd
Make in file tests work again. Also allow manual testing without overriding PBKDF rounds
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sun, 26 Feb 2023 23:38:06 -0500 |
| parents | 8b2287d850c8 |
| children | da751d3a2138 |
comparison
equal
deleted
inserted
replaced
| 7184:8b2287d850c8 | 7185:8e8d111fcdcd |
|---|---|
| 419 if self.password is None: | 419 if self.password is None: |
| 420 raise ValueError('Password not set') | 420 raise ValueError('Password not set') |
| 421 return '{%s}%s' % (self.scheme, self.password) | 421 return '{%s}%s' % (self.scheme, self.password) |
| 422 | 422 |
| 423 | 423 |
| 424 def test_missing_crypt(): | 424 def test_missing_crypt(config=None): |
| 425 p = encodePassword('sekrit', 'crypt') # noqa: F841 - test only | 425 p = encodePassword('sekrit', 'crypt') # noqa: F841 - test only |
| 426 | 426 |
| 427 | 427 |
| 428 def test(): | 428 def test(config=None): |
| 429 # SHA | 429 # SHA |
| 430 p = Password('sekrit') | 430 p = Password('sekrit', config=config) |
| 431 assert Password(encrypted=str(p)) == 'sekrit' | 431 assert Password(encrypted=str(p)) == 'sekrit' |
| 432 assert 'sekrit' == Password(encrypted=str(p)) | 432 assert 'sekrit' == Password(encrypted=str(p)) |
| 433 assert p == 'sekrit' | 433 assert p == 'sekrit' |
| 434 assert p != 'not sekrit' | 434 assert p != 'not sekrit' |
| 435 assert 'sekrit' == p | 435 assert 'sekrit' == p |
| 436 assert 'not sekrit' != p | 436 assert 'not sekrit' != p |
| 437 | 437 |
| 438 # MD5 | 438 # MD5 |
| 439 p = Password('sekrit', 'MD5') | 439 p = Password('sekrit', 'MD5', config=config) |
| 440 assert Password(encrypted=str(p)) == 'sekrit' | 440 assert Password(encrypted=str(p)) == 'sekrit' |
| 441 assert 'sekrit' == Password(encrypted=str(p)) | 441 assert 'sekrit' == Password(encrypted=str(p)) |
| 442 assert p == 'sekrit' | 442 assert p == 'sekrit' |
| 443 assert p != 'not sekrit' | 443 assert p != 'not sekrit' |
| 444 assert 'sekrit' == p | 444 assert 'sekrit' == p |
| 445 assert 'not sekrit' != p | 445 assert 'not sekrit' != p |
| 446 | 446 |
| 447 # crypt | 447 # crypt |
| 448 if crypt: # not available on Windows | 448 if crypt: # not available on Windows |
| 449 p = Password('sekrit', 'crypt') | 449 p = Password('sekrit', 'crypt', config=config) |
| 450 assert Password(encrypted=str(p)) == 'sekrit' | 450 assert Password(encrypted=str(p)) == 'sekrit' |
| 451 assert 'sekrit' == Password(encrypted=str(p)) | 451 assert 'sekrit' == Password(encrypted=str(p)) |
| 452 assert p == 'sekrit' | 452 assert p == 'sekrit' |
| 453 assert p != 'not sekrit' | 453 assert p != 'not sekrit' |
| 454 assert 'sekrit' == p | 454 assert 'sekrit' == p |
| 455 assert 'not sekrit' != p | 455 assert 'not sekrit' != p |
| 456 | 456 |
| 457 # SSHA | 457 # SSHA |
| 458 p = Password('sekrit', 'SSHA') | 458 p = Password('sekrit', 'SSHA', config=config) |
| 459 assert Password(encrypted=str(p)) == 'sekrit' | 459 assert Password(encrypted=str(p)) == 'sekrit' |
| 460 assert 'sekrit' == Password(encrypted=str(p)) | 460 assert 'sekrit' == Password(encrypted=str(p)) |
| 461 assert p == 'sekrit' | 461 assert p == 'sekrit' |
| 462 assert p != 'not sekrit' | 462 assert p != 'not sekrit' |
| 463 assert 'sekrit' == p | 463 assert 'sekrit' == p |
| 471 # PBKDF2 - hash function | 471 # PBKDF2 - hash function |
| 472 h = "5000$7BvbBq.EZzz/O0HuwX3iP.nAG3s$g3oPnFFaga2BJaX5PoPRljl4XIE" | 472 h = "5000$7BvbBq.EZzz/O0HuwX3iP.nAG3s$g3oPnFFaga2BJaX5PoPRljl4XIE" |
| 473 assert encodePassword("sekrit", "PBKDF2", h) == h | 473 assert encodePassword("sekrit", "PBKDF2", h) == h |
| 474 | 474 |
| 475 # PBKDF2 - high level integration | 475 # PBKDF2 - high level integration |
| 476 p = Password('sekrit', 'PBKDF2') | 476 p = Password('sekrit', 'PBKDF2', config=config) |
| 477 assert Password(encrypted=str(p)) == 'sekrit' | 477 assert Password(encrypted=str(p)) == 'sekrit' |
| 478 assert 'sekrit' == Password(encrypted=str(p)) | 478 assert 'sekrit' == Password(encrypted=str(p)) |
| 479 assert p == 'sekrit' | 479 assert p == 'sekrit' |
| 480 assert p != 'not sekrit' | 480 assert p != 'not sekrit' |
| 481 assert 'sekrit' == p | 481 assert 'sekrit' == p |
| 482 assert 'not sekrit' != p | 482 assert 'not sekrit' != p |
| 483 | 483 |
| 484 | 484 |
| 485 if __name__ == '__main__': | 485 if __name__ == '__main__': |
| 486 test() | 486 from roundup.configuration import CoreConfig |
| 487 test_missing_crypt() | 487 test(CoreConfig()) |
| 488 crypt = None | |
| 489 exception = None | |
| 490 try: | |
| 491 test_missing_crypt(CoreConfig()) | |
| 492 except PasswordValueError as e: | |
| 493 exception = e | |
| 494 assert exception != None | |
| 495 assert exception.__str__() == "Unsupported encryption scheme 'crypt'" | |
| 488 | 496 |
| 489 # vim: set filetype=python sts=4 sw=4 et si : | 497 # vim: set filetype=python sts=4 sw=4 et si : |
