-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.py
More file actions
100 lines (80 loc) · 5.54 KB
/
test.py
File metadata and controls
100 lines (80 loc) · 5.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
"""
PyRandomString test script
"""
import unittest
import re
import PyRandomString
class TestPyRandomString(unittest.TestCase):
def setUp(self):
self.__random_string_generator = PyRandomString.RandomString()
def tearDown(self):
pass
def testStringLength(self):
random_strings = self.__random_string_generator.get_strings(count=5, max_length=8, random_length=False, string_type=PyRandomString.StringType.ALPHA_NUMERIC_ALL_CASE)
for string in random_strings:
assert len(string) == 8
def testStringRandomLength(self):
random_strings = self.__random_string_generator.get_strings(count=5, max_length=20, random_length=True, string_type=PyRandomString.StringType.ALPHA_NUMERIC_ALL_CASE)
for string in random_strings:
assert re.fullmatch(r'[a-zA-Z0-9]{1,20}', string)
def testForSingleString(self):
random_string = self.__random_string_generator.get_string(max_length=6, random_length=False, string_type=PyRandomString.StringType.ALPHA_NUMERIC_ALL_CASE)
assert random_string and len(random_string) == 6
def testForSingleStringWithNoMaxLength(self):
random_string = self.__random_string_generator.get_string(max_length=0, random_length=False, string_type=PyRandomString.StringType.ALPHA_NUMERIC_ALL_CASE)
assert not random_string
def testStringCount(self):
random_strings = self.__random_string_generator.get_strings(count=5, max_length=6, random_length=False, string_type=PyRandomString.StringType.ALPHA_NUMERIC_ALL_CASE)
assert len(random_strings) == 5
def testForAlphabetInUpperCase(self):
random_strings = self.__random_string_generator.get_strings(count=5, max_length=10, random_length=False, string_type=PyRandomString.StringType.ALPHABET_UPPERCASE)
for string in random_strings:
assert re.fullmatch(r'[A-Z]{10}', string)
def testForAlphabetInLowerCase(self):
random_strings = self.__random_string_generator.get_strings(count=5, max_length=12, random_length=False, string_type=PyRandomString.StringType.ALPHABET_LOWERCASE)
for string in random_strings:
assert re.fullmatch(r'[a-z]{12}', string)
def testForAlphabetInMixedCase(self):
random_strings = self.__random_string_generator.get_strings(count=5, max_length=14, random_length=False, string_type=PyRandomString.StringType.ALPHABET_ALL_CASE)
for string in random_strings:
assert re.fullmatch(r'[a-zA-Z]{14}', string)
def testForAlphaNumericInUpperCase(self):
random_strings = self.__random_string_generator.get_strings(count=5, max_length=16, random_length=False, string_type=PyRandomString.StringType.ALPHA_NUMERIC_UPPERCASE)
for string in random_strings:
assert re.fullmatch(r'[0-9A-Z]{16}', string)
def testForAlphaNumericInLowerCase(self):
random_strings = self.__random_string_generator.get_strings(count=5, max_length=18, random_length=False, string_type=PyRandomString.StringType.ALPHA_NUMERIC_LOWERCASE)
for string in random_strings:
assert re.fullmatch(r'[0-9a-z]{18}', string)
def testForAlphaNumericInMixedCase(self):
random_strings = self.__random_string_generator.get_strings(count=5, max_length=20, random_length=False, string_type=PyRandomString.StringType.ALPHA_NUMERIC_ALL_CASE)
for string in random_strings:
assert re.fullmatch(r'[a-zA-Z0-9]{20}', string)
def testForAlphaNumericInMixedCaseWithSymbols(self):
random_strings = self.__random_string_generator.get_strings(count=5, max_length=22, random_length=False, string_type=PyRandomString.StringType.ALPHA_NUMERIC_ALL_CASE_WITH_SYMBOLS)
for string in random_strings:
assert re.fullmatch(r'[a-zA-Z0-9" !"#$%&\'()*+,-./:;<=>?@\[\\\]^_`{|}~]{22}', string)
def testForAlphaNumericInMixedCaseWithCustomSymbols(self):
random_strings = self.__random_string_generator.get_strings(count=5, max_length=24, random_length=False, string_type=PyRandomString.StringType.ALPHA_NUMERIC_ALL_CASE_WITH_SYMBOLS, symbols='*&^%$#@!+-=')
for string in random_strings:
assert re.fullmatch(r'[a-zA-Z0-9*&^%$#@!+-=]{24}', string)
def testForUnsupportedTypeException(self):
with self.assertRaises(PyRandomString.UnsupportedTypeException):
self.__random_string_generator.get_strings(count = '2')
with self.assertRaises(PyRandomString.UnsupportedTypeException):
self.__random_string_generator.get_string(max_length = 'bad-input')
with self.assertRaises(PyRandomString.UnsupportedTypeException):
self.__random_string_generator.get_strings(random_length = 12345)
with self.assertRaises(PyRandomString.UnsupportedTypeException):
self.__random_string_generator.get_strings(string_type = 36.69)
with self.assertRaises(PyRandomString.UnsupportedTypeException):
self.__random_string_generator.get_strings(symbols = 321456)
def testForInvalidInputSymbolsException(self):
with self.assertRaises(PyRandomString.InvalidInputSymbolsException):
self.__random_string_generator.get_strings(symbols='bad')
def testForAlphaNumericInMixedCaseWithForceOccurance(self):
random_strings = self.__random_string_generator.get_strings(count=100, max_length=30, random_length=False, string_type=PyRandomString.StringType.ALPHA_NUMERIC_ALL_CASE, must_include_all_type=False)
for string in random_strings:
assert re.fullmatch(r'[a-zA-Z0-9]{30}', string)
if __name__ == '__main__':
unittest.main()