summaryrefslogtreecommitdiff
path: root/Lib/test/test_re.py
diff options
context:
space:
mode:
authorMax Bernstein <tekknolagi@users.noreply.github.com>2019-05-21 10:09:21 -0700
committerDino Viehland <dinoviehland@fb.com>2019-05-21 10:09:21 -0700
commitccb7ca728e09b307f9e9fd36ec40353137e68a3b (patch)
tree9e6f4e0a52d338e950c8e6a729c5dffa7197ae2d /Lib/test/test_re.py
parentad098b6750f4d74387ac21c8e23ae1ee7ff13571 (diff)
downloadcpython-git-ccb7ca728e09b307f9e9fd36ec40353137e68a3b.tar.gz
bpo-36929: Modify io/re tests to allow for missing mod name (#13392)
* bpo-36929: Modify io/re tests to allow for missing mod name For a vanishingly small number of internal types, CPython sets the tp_name slot to mod_name.type_name, either in the PyTypeObject or the PyType_Spec. There are a few minor places where this surfaces: * Custom repr functions for those types (some of which ignore the tp_name in favor of using a string literal, such as _io.TextIOWrapper) * Pickling error messages The test suite only tests the former. This commit modifies the test suite to allow Python implementations to omit the module prefix. https://bugs.python.org/issue36929
Diffstat (limited to 'Lib/test/test_re.py')
-rw-r--r--Lib/test/test_re.py28
1 files changed, 16 insertions, 12 deletions
diff --git a/Lib/test/test_re.py b/Lib/test/test_re.py
index 0a77e6fe9e..137c31de59 100644
--- a/Lib/test/test_re.py
+++ b/Lib/test/test_re.py
@@ -1761,24 +1761,28 @@ class ReTests(unittest.TestCase):
def test_match_repr(self):
for string in '[abracadabra]', S('[abracadabra]'):
m = re.search(r'(.+)(.*?)\1', string)
- self.assertEqual(repr(m), "<%s.%s object; "
- "span=(1, 12), match='abracadabra'>" %
- (type(m).__module__, type(m).__qualname__))
+ pattern = r"<(%s\.)?%s object; span=\(1, 12\), match='abracadabra'>" % (
+ type(m).__module__, type(m).__qualname__
+ )
+ self.assertRegex(repr(m), pattern)
for string in (b'[abracadabra]', B(b'[abracadabra]'),
bytearray(b'[abracadabra]'),
memoryview(b'[abracadabra]')):
m = re.search(br'(.+)(.*?)\1', string)
- self.assertEqual(repr(m), "<%s.%s object; "
- "span=(1, 12), match=b'abracadabra'>" %
- (type(m).__module__, type(m).__qualname__))
+ pattern = r"<(%s\.)?%s object; span=\(1, 12\), match=b'abracadabra'>" % (
+ type(m).__module__, type(m).__qualname__
+ )
+ self.assertRegex(repr(m), pattern)
first, second = list(re.finditer("(aa)|(bb)", "aa bb"))
- self.assertEqual(repr(first), "<%s.%s object; "
- "span=(0, 2), match='aa'>" %
- (type(second).__module__, type(first).__qualname__))
- self.assertEqual(repr(second), "<%s.%s object; "
- "span=(3, 5), match='bb'>" %
- (type(second).__module__, type(second).__qualname__))
+ pattern = r"<(%s\.)?%s object; span=\(0, 2\), match='aa'>" % (
+ type(second).__module__, type(second).__qualname__
+ )
+ self.assertRegex(repr(first), pattern)
+ pattern = r"<(%s\.)?%s object; span=\(3, 5\), match='bb'>" % (
+ type(second).__module__, type(second).__qualname__
+ )
+ self.assertRegex(repr(second), pattern)
def test_zerowidth(self):
# Issues 852532, 1647489, 3262, 25054.