Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_crypt.py @ 87690:66c1c9f32567 default tip
Add use_weakref option to functools.lru_cache
The use_weakref option makes lru_cache create weak references to the function
arguments when creating the cache key, which prevents them from staying in the
memory forever even after all other references to them are gone.
This is a proof of concept for http://bugs.python.org/issue19859
| author | Radomir Dopieralski <devel@sheep.art.pl> |
|---|---|
| date | Tue, 03 Dec 2013 16:02:48 +0100 |
| parents | 22b6b59c70e6 |
| children |
| rev | line source |
|---|---|
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
45773
diff
changeset
|
1 from test import support |
|
45773
832c820e9d14
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
41554
diff
changeset
|
2 import unittest |
|
52625
f84340886936
Merged revisions 70734,70775,70856,70874,70876-70877 via svnmerge
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
3 |
|
82440
22b6b59c70e6
#16935: update test_crypt now that unittest discover understands SkipTest.
Ezio Melotti <ezio.melotti@gmail.com>
parents:
81379
diff
changeset
|
4 crypt = support.import_module('crypt') |
|
4811
9ae3cccfa7cd
Many scripts, but small changes. Update the way the scripts obtain the
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4742
diff
changeset
|
5 |
|
45773
832c820e9d14
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
41554
diff
changeset
|
6 class CryptTestCase(unittest.TestCase): |
|
832c820e9d14
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
41554
diff
changeset
|
7 |
|
832c820e9d14
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
41554
diff
changeset
|
8 def test_crypt(self): |
|
832c820e9d14
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
41554
diff
changeset
|
9 c = crypt.crypt('mypassword', 'ab') |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
45773
diff
changeset
|
10 if support.verbose: |
|
45773
832c820e9d14
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
41554
diff
changeset
|
11 print('Test encryption: ', c) |
|
832c820e9d14
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
41554
diff
changeset
|
12 |
|
68097
372b2ef0ff37
Issue #10924: Adding salt and Modular Crypt Format to crypt library.
Sean Reifscheider <jafo@tummy.com>
parents:
52625
diff
changeset
|
13 def test_salt(self): |
|
68105
0586c699d467
Make Lib/crypt.py meet PEP 8 standards. This also led to a tweak in the new API
Brett Cannon <bcannon@gmail.com>
parents:
68103
diff
changeset
|
14 self.assertEqual(len(crypt._saltchars), 64) |
|
0586c699d467
Make Lib/crypt.py meet PEP 8 standards. This also led to a tweak in the new API
Brett Cannon <bcannon@gmail.com>
parents:
68103
diff
changeset
|
15 for method in crypt.methods: |
|
68097
372b2ef0ff37
Issue #10924: Adding salt and Modular Crypt Format to crypt library.
Sean Reifscheider <jafo@tummy.com>
parents:
52625
diff
changeset
|
16 salt = crypt.mksalt(method) |
|
372b2ef0ff37
Issue #10924: Adding salt and Modular Crypt Format to crypt library.
Sean Reifscheider <jafo@tummy.com>
parents:
52625
diff
changeset
|
17 self.assertEqual(len(salt), |
|
372b2ef0ff37
Issue #10924: Adding salt and Modular Crypt Format to crypt library.
Sean Reifscheider <jafo@tummy.com>
parents:
52625
diff
changeset
|
18 method.salt_chars + (3 if method.ident else 0)) |
|
372b2ef0ff37
Issue #10924: Adding salt and Modular Crypt Format to crypt library.
Sean Reifscheider <jafo@tummy.com>
parents:
52625
diff
changeset
|
19 |
|
372b2ef0ff37
Issue #10924: Adding salt and Modular Crypt Format to crypt library.
Sean Reifscheider <jafo@tummy.com>
parents:
52625
diff
changeset
|
20 def test_saltedcrypt(self): |
|
68105
0586c699d467
Make Lib/crypt.py meet PEP 8 standards. This also led to a tweak in the new API
Brett Cannon <bcannon@gmail.com>
parents:
68103
diff
changeset
|
21 for method in crypt.methods: |
|
68097
372b2ef0ff37
Issue #10924: Adding salt and Modular Crypt Format to crypt library.
Sean Reifscheider <jafo@tummy.com>
parents:
52625
diff
changeset
|
22 pw = crypt.crypt('assword', method) |
|
372b2ef0ff37
Issue #10924: Adding salt and Modular Crypt Format to crypt library.
Sean Reifscheider <jafo@tummy.com>
parents:
52625
diff
changeset
|
23 self.assertEqual(len(pw), method.total_size) |
|
372b2ef0ff37
Issue #10924: Adding salt and Modular Crypt Format to crypt library.
Sean Reifscheider <jafo@tummy.com>
parents:
52625
diff
changeset
|
24 pw = crypt.crypt('assword', crypt.mksalt(method)) |
|
372b2ef0ff37
Issue #10924: Adding salt and Modular Crypt Format to crypt library.
Sean Reifscheider <jafo@tummy.com>
parents:
52625
diff
changeset
|
25 self.assertEqual(len(pw), method.total_size) |
|
372b2ef0ff37
Issue #10924: Adding salt and Modular Crypt Format to crypt library.
Sean Reifscheider <jafo@tummy.com>
parents:
52625
diff
changeset
|
26 |
|
372b2ef0ff37
Issue #10924: Adding salt and Modular Crypt Format to crypt library.
Sean Reifscheider <jafo@tummy.com>
parents:
52625
diff
changeset
|
27 def test_methods(self): |
|
68105
0586c699d467
Make Lib/crypt.py meet PEP 8 standards. This also led to a tweak in the new API
Brett Cannon <bcannon@gmail.com>
parents:
68103
diff
changeset
|
28 # Gurantee that METHOD_CRYPT is the last method in crypt.methods. |
|
0586c699d467
Make Lib/crypt.py meet PEP 8 standards. This also led to a tweak in the new API
Brett Cannon <bcannon@gmail.com>
parents:
68103
diff
changeset
|
29 self.assertTrue(len(crypt.methods) >= 1) |
|
0586c699d467
Make Lib/crypt.py meet PEP 8 standards. This also led to a tweak in the new API
Brett Cannon <bcannon@gmail.com>
parents:
68103
diff
changeset
|
30 self.assertEqual(crypt.METHOD_CRYPT, crypt.methods[-1]) |
|
68097
372b2ef0ff37
Issue #10924: Adding salt and Modular Crypt Format to crypt library.
Sean Reifscheider <jafo@tummy.com>
parents:
52625
diff
changeset
|
31 |
|
45773
832c820e9d14
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
41554
diff
changeset
|
32 if __name__ == "__main__": |
|
81379
15ddd683c321
#16919: test_crypt now works with unittest test discovery. Patch by Zachary Ware.
Ezio Melotti <ezio.melotti@gmail.com>
parents:
68105
diff
changeset
|
33 unittest.main() |
