Linux ams-business-8.hostwindsdns.com 4.18.0-553.80.1.lve.el8.x86_64 #1 SMP Wed Oct 22 19:29:36 UTC 2025 x86_64
LiteSpeed
Server IP : 192.236.177.161 & Your IP : 216.73.216.50
Domains :
Cant Read [ /etc/named.conf ]
User : ajzdfbpz
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
lib /
python3.6 /
site-packages /
passlib /
tests /
Delete
Unzip
Name
Size
Permission
Date
Action
__pycache__
[ DIR ]
drwxr-xr-x
2024-02-13 01:26
__init__.py
20
B
-rw-r--r--
2013-09-13 17:41
__main__.py
82
B
-rw-r--r--
2013-09-13 17:41
_test_bad_register.py
541
B
-rw-r--r--
2013-12-27 19:19
backports.py
2.53
KB
-rw-r--r--
2019-11-11 23:18
sample1.cfg
243
B
-rw-r--r--
2016-11-23 03:20
sample1b.cfg
252
B
-rw-r--r--
2016-11-23 03:20
sample1c.cfg
490
B
-rw-r--r--
2016-11-23 03:20
sample_config_1s.cfg
238
B
-rw-r--r--
2013-09-13 17:41
test_apache.py
28.74
KB
-rw-r--r--
2019-11-12 18:47
test_apps.py
5.16
KB
-rw-r--r--
2016-11-23 03:20
test_context.py
73.31
KB
-rw-r--r--
2019-11-22 20:30
test_context_deprecated.py
28.6
KB
-rw-r--r--
2019-11-12 18:47
test_crypto_builtin_md4.py
5.53
KB
-rw-r--r--
2019-11-12 18:47
test_crypto_des.py
8.67
KB
-rw-r--r--
2016-11-23 03:20
test_crypto_digest.py
18.23
KB
-rw-r--r--
2019-11-12 18:47
test_crypto_scrypt.py
26.02
KB
-rw-r--r--
2019-11-12 18:47
test_ext_django.py
32.15
KB
-rw-r--r--
2019-11-19 19:41
test_ext_django_source.py
10.78
KB
-rw-r--r--
2017-01-29 21:28
test_handlers.py
61.39
KB
-rw-r--r--
2019-11-12 18:47
test_handlers_argon2.py
22.3
KB
-rw-r--r--
2019-11-19 16:24
test_handlers_bcrypt.py
22.96
KB
-rw-r--r--
2016-11-23 03:20
test_handlers_cisco.py
19.99
KB
-rw-r--r--
2019-11-12 18:47
test_handlers_django.py
14.75
KB
-rw-r--r--
2019-11-19 19:41
test_handlers_pbkdf2.py
18.35
KB
-rw-r--r--
2019-11-12 18:47
test_handlers_scrypt.py
4.09
KB
-rw-r--r--
2019-11-11 23:18
test_hosts.py
3.81
KB
-rw-r--r--
2016-11-23 03:20
test_pwd.py
7.02
KB
-rw-r--r--
2016-12-19 17:52
test_registry.py
9.24
KB
-rw-r--r--
2016-11-23 03:20
test_totp.py
64.05
KB
-rw-r--r--
2019-11-12 18:47
test_utils.py
39.3
KB
-rw-r--r--
2019-11-12 18:47
test_utils_handlers.py
31.38
KB
-rw-r--r--
2019-11-12 18:47
test_utils_md4.py
1.44
KB
-rw-r--r--
2016-11-23 03:20
test_utils_pbkdf2.py
11.82
KB
-rw-r--r--
2019-11-12 18:47
test_win32.py
1.88
KB
-rw-r--r--
2019-11-12 18:47
tox_support.py
2.42
KB
-rw-r--r--
2019-11-12 18:47
utils.py
138.01
KB
-rw-r--r--
2019-11-19 15:46
Save
Rename
"""passlib.tests -- tests for passlib.pwd""" #============================================================================= # imports #============================================================================= # core import itertools import logging; log = logging.getLogger(__name__) # site # pkg from passlib.tests.utils import TestCase # local __all__ = [ "UtilsTest", "GenerateTest", "StrengthTest", ] #============================================================================= # #============================================================================= class UtilsTest(TestCase): """test internal utilities""" descriptionPrefix = "passlib.pwd" def test_self_info_rate(self): """_self_info_rate()""" from passlib.pwd import _self_info_rate self.assertEqual(_self_info_rate(""), 0) self.assertEqual(_self_info_rate("a" * 8), 0) self.assertEqual(_self_info_rate("ab"), 1) self.assertEqual(_self_info_rate("ab" * 8), 1) self.assertEqual(_self_info_rate("abcd"), 2) self.assertEqual(_self_info_rate("abcd" * 8), 2) self.assertAlmostEqual(_self_info_rate("abcdaaaa"), 1.5488, places=4) # def test_total_self_info(self): # """_total_self_info()""" # from passlib.pwd import _total_self_info # # self.assertEqual(_total_self_info(""), 0) # # self.assertEqual(_total_self_info("a" * 8), 0) # # self.assertEqual(_total_self_info("ab"), 2) # self.assertEqual(_total_self_info("ab" * 8), 16) # # self.assertEqual(_total_self_info("abcd"), 8) # self.assertEqual(_total_self_info("abcd" * 8), 64) # self.assertAlmostEqual(_total_self_info("abcdaaaa"), 12.3904, places=4) #============================================================================= # word generation #============================================================================= # import subject from passlib.pwd import genword, default_charsets ascii_62 = default_charsets['ascii_62'] hex = default_charsets['hex'] class WordGeneratorTest(TestCase): """test generation routines""" descriptionPrefix = "passlib.pwd.genword()" def setUp(self): super(WordGeneratorTest, self).setUp() # patch some RNG references so they're reproducible. from passlib.pwd import SequenceGenerator self.patchAttr(SequenceGenerator, "rng", self.getRandom("pwd generator")) def assertResultContents(self, results, count, chars, unique=True): """check result list matches expected count & charset""" self.assertEqual(len(results), count) if unique: if unique is True: unique = count self.assertEqual(len(set(results)), unique) self.assertEqual(set("".join(results)), set(chars)) def test_general(self): """general behavior""" # basic usage result = genword() self.assertEqual(len(result), 9) # malformed keyword should have useful error. self.assertRaisesRegex(TypeError, "(?i)unexpected keyword.*badkwd", genword, badkwd=True) def test_returns(self): """'returns' keyword""" # returns=int option results = genword(returns=5000) self.assertResultContents(results, 5000, ascii_62) # returns=iter option gen = genword(returns=iter) results = [next(gen) for _ in range(5000)] self.assertResultContents(results, 5000, ascii_62) # invalid returns option self.assertRaises(TypeError, genword, returns='invalid-type') def test_charset(self): """'charset' & 'chars' options""" # charset option results = genword(charset="hex", returns=5000) self.assertResultContents(results, 5000, hex) # chars option # there are 3**3=27 possible combinations results = genword(length=3, chars="abc", returns=5000) self.assertResultContents(results, 5000, "abc", unique=27) # chars + charset self.assertRaises(TypeError, genword, chars='abc', charset='hex') # TODO: test rng option #============================================================================= # phrase generation #============================================================================= # import subject from passlib.pwd import genphrase simple_words = ["alpha", "beta", "gamma"] class PhraseGeneratorTest(TestCase): """test generation routines""" descriptionPrefix = "passlib.pwd.genphrase()" def assertResultContents(self, results, count, words, unique=True, sep=" "): """check result list matches expected count & charset""" self.assertEqual(len(results), count) if unique: if unique is True: unique = count self.assertEqual(len(set(results)), unique) out = set(itertools.chain.from_iterable(elem.split(sep) for elem in results)) self.assertEqual(out, set(words)) def test_general(self): """general behavior""" # basic usage result = genphrase() self.assertEqual(len(result.split(" ")), 4) # 48 / log(7776, 2) ~= 3.7 -> 4 # malformed keyword should have useful error. self.assertRaisesRegex(TypeError, "(?i)unexpected keyword.*badkwd", genphrase, badkwd=True) def test_entropy(self): """'length' & 'entropy' keywords""" # custom entropy result = genphrase(entropy=70) self.assertEqual(len(result.split(" ")), 6) # 70 / log(7776, 2) ~= 5.4 -> 6 # custom length result = genphrase(length=3) self.assertEqual(len(result.split(" ")), 3) # custom length < entropy result = genphrase(length=3, entropy=48) self.assertEqual(len(result.split(" ")), 4) # custom length > entropy result = genphrase(length=4, entropy=12) self.assertEqual(len(result.split(" ")), 4) def test_returns(self): """'returns' keyword""" # returns=int option results = genphrase(returns=1000, words=simple_words) self.assertResultContents(results, 1000, simple_words) # returns=iter option gen = genphrase(returns=iter, words=simple_words) results = [next(gen) for _ in range(1000)] self.assertResultContents(results, 1000, simple_words) # invalid returns option self.assertRaises(TypeError, genphrase, returns='invalid-type') def test_wordset(self): """'wordset' & 'words' options""" # wordset option results = genphrase(words=simple_words, returns=5000) self.assertResultContents(results, 5000, simple_words) # words option results = genphrase(length=3, words=simple_words, returns=5000) self.assertResultContents(results, 5000, simple_words, unique=3**3) # words + wordset self.assertRaises(TypeError, genphrase, words=simple_words, wordset='bip39') #============================================================================= # eof #=============================================================================