/usr/lib/python3/dist-packages/rstr/tests/test_xeger.py is in python3-rstr 2.2.6-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | import re
import unittest
from rstr.rstr_base import Rstr
class TestXeger(unittest.TestCase):
def setUp(self):
self.rs = Rstr()
def test_literals(self):
pattern = r'foo'
assert re.match(pattern, self.rs.xeger(pattern))
def test_dot(self):
"""
Verify that the dot character doesn't produce newlines.
See: https://bitbucket.org/leapfrogdevelopment/rstr/issue/1/
"""
pattern = r'.+'
for i in range(100):
assert re.match(pattern, self.rs.xeger(pattern))
def test_digit(self):
pattern = r'\d'
assert re.match(pattern, self.rs.xeger(pattern))
def test_nondigits(self):
pattern = r'\D'
assert re.match(pattern, self.rs.xeger(pattern))
def test_literal_with_repeat(self):
pattern = r'A{3}'
assert re.match(pattern, self.rs.xeger(pattern))
def test_literal_with_range_repeat(self):
pattern = r'A{2, 5}'
assert re.match(pattern, self.rs.xeger(pattern))
def test_word(self):
pattern = r'\w'
assert re.match(pattern, self.rs.xeger(pattern))
def test_nonword(self):
pattern = r'\W'
assert re.match(pattern, self.rs.xeger(pattern))
def test_or(self):
pattern = r'foo|bar'
assert re.match(pattern, self.rs.xeger(pattern))
def test_or_with_subpattern(self):
pattern = r'(foo|bar)'
assert re.match(pattern, self.rs.xeger(pattern))
def test_range(self):
pattern = r'[A-F]'
assert re.match(pattern, self.rs.xeger(pattern))
def test_character_group(self):
pattern = r'[ABC]'
assert re.match(pattern, self.rs.xeger(pattern))
def test_carot(self):
pattern = r'^foo'
assert re.match(pattern, self.rs.xeger(pattern))
def test_dollarsign(self):
pattern = r'foo$'
assert re.match(pattern, self.rs.xeger(pattern))
def test_not_literal(self):
pattern = r'[^a]'
assert re.match(pattern, self.rs.xeger(pattern))
def test_negation_group(self):
pattern = r'[^AEIOU]'
assert re.match(pattern, self.rs.xeger(pattern))
def test_lookahead(self):
pattern = r'foo(?=bar)'
assert re.match(pattern, self.rs.xeger(pattern))
def test_lookbehind(self):
pattern = r'(?<=foo)bar'
assert re.search(pattern, self.rs.xeger(pattern))
def test_backreference(self):
pattern = r'(foo|bar)baz\1'
assert re.match(pattern, self.rs.xeger(pattern))
def test_zero_or_more_greedy(self):
pattern = r'a*'
assert re.match(pattern, self.rs.xeger(pattern))
def test_zero_or_more_non_greedy(self):
pattern = r'a*?'
assert re.match(pattern, self.rs.xeger(pattern))
|