summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Shepelev <temotor@gmail.com>2021-01-29 13:26:10 +0300
committerSergey Shepelev <temotor@gmail.com>2021-01-29 13:26:10 +0300
commit44979522af5fb9dfa64afd0310c4eb6b62ae477f (patch)
treeb10aa614b0d5677f79a0d233488ae88429a0d728
parent4705f07c516e02a3c73095db74a6331ee6639119 (diff)
downloadeventlet-683-open-kwargs.tar.gz
patcher: built-in open() did not accept kwargs683-open-kwargs
https://github.com/eventlet/eventlet/issues/683
-rw-r--r--eventlet/green/builtin.py4
-rw-r--r--tests/isolated/patcher_open_kwargs.py10
-rw-r--r--tests/patcher_test.py4
3 files changed, 16 insertions, 2 deletions
diff --git a/eventlet/green/builtin.py b/eventlet/green/builtin.py
index 71de1dc..8d0603a 100644
--- a/eventlet/green/builtin.py
+++ b/eventlet/green/builtin.py
@@ -38,9 +38,9 @@ __original_open = open
__opening = False
-def open(*args):
+def open(*args, **kwargs):
global __opening
- result = __original_open(*args)
+ result = __original_open(*args, **kwargs)
if not __opening:
# This is incredibly ugly. 'open' is used under the hood by
# the import process. So, ensure we don't wind up in an
diff --git a/tests/isolated/patcher_open_kwargs.py b/tests/isolated/patcher_open_kwargs.py
new file mode 100644
index 0000000..be88ef9
--- /dev/null
+++ b/tests/isolated/patcher_open_kwargs.py
@@ -0,0 +1,10 @@
+__test__ = False
+
+if __name__ == "__main__":
+ import eventlet
+ eventlet.monkey_patch(builtins=True, os=True)
+
+ with open(__file__, mode="rt", buffering=16):
+ pass
+
+ print("pass")
diff --git a/tests/patcher_test.py b/tests/patcher_test.py
index 6ff6e5a..dbf6e1c 100644
--- a/tests/patcher_test.py
+++ b/tests/patcher_test.py
@@ -523,3 +523,7 @@ def test_fork_after_monkey_patch():
def test_builtin():
tests.run_isolated('patcher_builtin.py')
+
+
+def test_open_kwargs():
+ tests.run_isolated("patcher_open_kwargs.py")