summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEzio Melotti <ezio.melotti@gmail.com>2013-06-08 21:07:06 (GMT)
committerEzio Melotti <ezio.melotti@gmail.com>2013-06-08 21:07:06 (GMT)
commit28b0d9d13e8c4a92e60341d4758f3f81a8cf15e5 (patch)
treee53eb9741d2014b6f19432279d36e9e5cce04795
parentba6c0d3b08768b1a6b9bebba5eeead840fdc9356 (diff)
downloadcpython-28b0d9d13e8c4a92e60341d4758f3f81a8cf15e5.zip
cpython-28b0d9d13e8c4a92e60341d4758f3f81a8cf15e5.tar.gz
cpython-28b0d9d13e8c4a92e60341d4758f3f81a8cf15e5.tar.bz2
#17691: test_univnewlines now works with unittest test discovery. Patch by Zachary Ware.
-rw-r--r--Lib/test/test_univnewlines.py37
-rw-r--r--Misc/NEWS3
2 files changed, 19 insertions, 21 deletions
diff --git a/Lib/test/test_univnewlines.py b/Lib/test/test_univnewlines.py
index 183ae75..fd07539 100644
--- a/Lib/test/test_univnewlines.py
+++ b/Lib/test/test_univnewlines.py
@@ -30,7 +30,13 @@ DATA_CRLF = "\r\n".join(DATA_TEMPLATE) + "\r\n"
DATA_MIXED = "\n".join(DATA_TEMPLATE) + "\r"
DATA_SPLIT = [x + "\n" for x in DATA_TEMPLATE]
-class TestGenericUnivNewlines(unittest.TestCase):
+class CTest:
+ open = io.open
+
+class PyTest:
+ open = staticmethod(pyio.open)
+
+class TestGenericUnivNewlines:
# use a class variable DATA to define the data to write to the file
# and a class variable NEWLINE to set the expected newlines value
READMODE = 'r'
@@ -85,10 +91,14 @@ class TestGenericUnivNewlines(unittest.TestCase):
class TestCRNewlines(TestGenericUnivNewlines):
NEWLINE = '\r'
DATA = DATA_CR
+class CTestCRNewlines(CTest, TestCRNewlines, unittest.TestCase): pass
+class PyTestCRNewlines(PyTest, TestCRNewlines, unittest.TestCase): pass
class TestLFNewlines(TestGenericUnivNewlines):
NEWLINE = '\n'
DATA = DATA_LF
+class CTestLFNewlines(CTest, TestLFNewlines, unittest.TestCase): pass
+class PyTestLFNewlines(PyTest, TestLFNewlines, unittest.TestCase): pass
class TestCRLFNewlines(TestGenericUnivNewlines):
NEWLINE = '\r\n'
@@ -100,29 +110,14 @@ class TestCRLFNewlines(TestGenericUnivNewlines):
data = fp.readline()
pos = fp.tell()
self.assertEqual(repr(fp.newlines), repr(self.NEWLINE))
+class CTestCRLFNewlines(CTest, TestCRLFNewlines, unittest.TestCase): pass
+class PyTestCRLFNewlines(PyTest, TestCRLFNewlines, unittest.TestCase): pass
class TestMixedNewlines(TestGenericUnivNewlines):
NEWLINE = ('\r', '\n')
DATA = DATA_MIXED
-
-
-def test_main():
- base_tests = (TestCRNewlines,
- TestLFNewlines,
- TestCRLFNewlines,
- TestMixedNewlines)
- tests = []
- # Test the C and Python implementations.
- for test in base_tests:
- class CTest(test):
- open = io.open
- CTest.__name__ = "C" + test.__name__
- class PyTest(test):
- open = staticmethod(pyio.open)
- PyTest.__name__ = "Py" + test.__name__
- tests.append(CTest)
- tests.append(PyTest)
- support.run_unittest(*tests)
+class CTestMixedNewlines(CTest, TestMixedNewlines, unittest.TestCase): pass
+class PyTestMixedNewlines(PyTest, TestMixedNewlines, unittest.TestCase): pass
if __name__ == '__main__':
- test_main()
+ unittest.main()
diff --git a/Misc/NEWS b/Misc/NEWS
index cb1d126..5707f04 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -84,6 +84,9 @@ IDLE
Tests
-----
+- Issue #17691: test_univnewlines now works with unittest test discovery.
+ Patch by Zachary Ware.
+
- Issue #18094: test_uuid no more reports skipped tests as passed.
- Issue #11995: test_pydoc doesn't import all sys.path modules anymore.