]> granicus.if.org Git - python/commitdiff
issue9859: Adds a CPyMatchTest test case to compare the exposed APIs
authorGregory P. Smith <greg@krypto.org>
Tue, 14 Apr 2015 19:58:05 +0000 (12:58 -0700)
committerGregory P. Smith <greg@krypto.org>
Tue, 14 Apr 2015 19:58:05 +0000 (12:58 -0700)
of the Python io module and the C io module.  They do not currently
match so the failing test is marked with @unittest.skip.

Lib/test/test_io.py

index 4d178216bc14d63763157f9b52a8205ffe2b62d3..47c3b51a60b1dca3126df80e62216aa975c260e9 100644 (file)
@@ -719,6 +719,20 @@ class PyIOTest(IOTest):
     pass
 
 
+class CPyMatchTest(unittest.TestCase):
+
+    @unittest.skip('test to be fixed by issue 9858')
+    def test_RawIOBase_io_in_pyio_match(self):
+        """Test that pyio RawIOBase class has all c RawIOBase methods"""
+        mismatch = support.detect_api_mismatch(pyio.RawIOBase, io.RawIOBase)
+        self.assertEqual(mismatch, set(), msg='Python RawIOBase does not have all C RawIOBase methods')
+
+    def test_RawIOBase_pyio_in_io_match(self):
+        """Test that c RawIOBase class has all pyio RawIOBase methods"""
+        mismatch = support.detect_api_mismatch(io.RawIOBase, pyio.RawIOBase)
+        self.assertEqual(mismatch, set(), msg='C RawIOBase does not have all Python RawIOBase methods')
+
+
 class CommonBufferedTests:
     # Tests common to BufferedReader, BufferedWriter and BufferedRandom
 
@@ -3719,7 +3733,7 @@ class PySignalsTest(SignalsTest):
 
 
 def load_tests(*args):
-    tests = (CIOTest, PyIOTest,
+    tests = (CIOTest, PyIOTest, CPyMatchTest,
              CBufferedReaderTest, PyBufferedReaderTest,
              CBufferedWriterTest, PyBufferedWriterTest,
              CBufferedRWPairTest, PyBufferedRWPairTest,