os: Include posix functions in os.__all__. Closes issue #18554.
Patch by Ronald Oussoren.
diff --git a/Lib/os.py b/Lib/os.py
index 556f592..3bb0f4e 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -61,6 +61,10 @@
except ImportError:
pass
+ import posix
+ __all__.extend(_get_exports_list(posix))
+ del posix
+
elif 'nt' in _names:
name = 'nt'
linesep = '\r\n'
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 020d0fa..6281596 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -2616,6 +2616,13 @@
self.assertEqual(os.get_blocking(fd), True)
+
+class ExportsTests(unittest.TestCase):
+ def test_os_all(self):
+ self.assertIn('open', os.__all__)
+ self.assertIn('walk', os.__all__)
+
+
@support.reap_threads
def test_main():
support.run_unittest(
@@ -2652,6 +2659,7 @@
FDInheritanceTests,
Win32JunctionTests,
BlockingTests,
+ ExportsTests,
)
if __name__ == "__main__":
diff --git a/Misc/NEWS b/Misc/NEWS
index 9cb9e23..fb018be 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,8 @@
Core and Builtins
-----------------
+- Issue #18554: os.__all__ includes posix functions.
+
- Issue #21391: Use os.path.abspath in the shutil module.
- Issue #11471: avoid generating a JUMP_FORWARD instruction at the end of