File: test_string.py

package info (click to toggle)
python-flask-seeder 1.2.0-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 292 kB
  • sloc: python: 1,062; makefile: 2
file content (132 lines) | stat: -rw-r--r-- 3,466 bytes parent folder | download | duplicates (2)
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
from unittest import TestCase
from unittest.mock import MagicMock, patch

from flask_seeder.generator import String

class TestStringGenerator(TestCase):

    def setUp(self):
        self.generator = String()

    def test_integer_range_produce_character_from_valid_range(self):
        m_rnd = MagicMock()
        self.generator.rnd = m_rnd
        self.generator.pattern = "[4-6]"

        self.generator.generate()

        m_rnd.choice.assert_called_once_with("456")

    def test_string_range_produce_character_from_valid_range(self):
        m_rnd = MagicMock()
        self.generator.rnd = m_rnd
        self.generator.pattern = "[i-o]"

        self.generator.generate()

        m_rnd.choice.assert_called_once_with("ijklmno")

    def test_integer_range_pattern(self):
        self.generator.pattern = "[0-9]"

        string = self.generator.generate()

        self.assertRegex(string, r"^\d$")

    def test_string_range_pattern(self):
        self.generator.pattern = "[a-z]"

        string = self.generator.generate()

        self.assertRegex(string, "^[a-z]$")

    def test_range_pattern_quantifier(self):
        self.generator.pattern = "[0-9]{5}"

        string = self.generator.generate()

        self.assertRegex(string, r"^\d{5}$")

    def test_multiple_range_patterns(self):
        self.generator.pattern = "[0-9][a-c]"

        string = self.generator.generate()

        self.assertRegex(string, r"^\d[a-c]$")

    def test_multiple_range_patterns_with_quantifiers(self):
        self.generator.pattern = "[0-9]{4}[x-z]{2}"

        string = self.generator.generate()

        self.assertRegex(string, r"^\d{4}[x-z]{2}$")


    def test_integer_character_code(self):
        self.generator.pattern = r"\d"

        string = self.generator.generate()

        self.assertRegex(string, r"^\d$")

    def test_string_character_code(self):
        self.generator.pattern = r"\c"

        string = self.generator.generate()

        self.assertRegex(string, "^[a-zA-Z]$")

    def test_character_code_with_quantifier(self):
        self.generator.pattern = r"\d{3}"

        string = self.generator.generate()

        self.assertRegex(string, r"^\d{3}$")

    def test_oneof_pattern(self):
        self.generator.pattern = r"[aoueiy]"

        string = self.generator.generate()

        self.assertRegex(string, "^[aoueiy]$")

    def test_oneof_pattern_with_quantifier(self):
        self.generator.pattern = r"[aoueiy]{3}"

        string = self.generator.generate()

        self.assertRegex(string, "^[aoueiy]{3}$")

    def test_complex_string_generation(self):
        self.generator.pattern = r"abc\d{4}[i-m]{2}[qwerty]xyz"

        string = self.generator.generate()

        self.assertRegex(string, r"^abc\d{4}[i-m]{2}[qwerty]xyz$")

    def test_charcode_with_quantifier_range(self):
        self.generator.pattern = r"\c{1,2}"

        string = self.generator.generate()

        self.assertRegex(string, "[a-zA-Z]{1,2}")

    def test_invalid_charcode_raise_ValueError(self):
        self.generator.pattern = r"\q"

        with self.assertRaises(ValueError):
            self.generator.generate()

    def test_string_group(self):
        self.generator.pattern = r"(one|two)"

        string = self.generator.generate()

        self.assertRegex(string, r"(one|two)")

    def test_number(self):
        self.generator.pattern = r"123"

        string = self.generator.generate()

        self.assertEqual(string, "123")