Author: Ronny Pfannschmidt <[email protected]>
Branch: codecheck-clean
Changeset: r233:8733583f714d
Date: 2013-02-24 23:20 +0100
http://bitbucket.org/pypy/pyrepl/changeset/8733583f714d/

Log:    merge from default

diff --git a/MANIFEST.in b/MANIFEST.in
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,1 +1,3 @@
 include TODO CREDITS CHANGES pythoni encopyright.py LICENSE
+include MANIFEST.in
+recursive-include testing *.py
diff --git a/pyrepl/readline.py b/pyrepl/readline.py
--- a/pyrepl/readline.py
+++ b/pyrepl/readline.py
@@ -182,9 +182,9 @@
     startup_hook = None
     config = ReadlineConfig()
 
-    def __init__(self):
-        self.f_in = os.dup(0)
-        self.f_out = os.dup(1)
+    def __init__(self, f_in=None, f_out=None):
+        self.f_in = f_in if f_in is not None else os.dup(0)
+        self.f_out = f_out if f_out is not None else os.dup(1)
 
     def get_reader(self):
         if self.reader is None:
diff --git a/pyrepl/unix_console.py b/pyrepl/unix_console.py
--- a/pyrepl/unix_console.py
+++ b/pyrepl/unix_console.py
@@ -393,6 +393,7 @@
 
         if hasattr(self, 'old_sigwinch'):
             signal.signal(signal.SIGWINCH, self.old_sigwinch)
+            del self.old_sigwinch
 
     def __sigwinch(self, signum, frame):
         self.height, self.width = self.getheightwidth()
diff --git a/testing/test_bugs.py b/testing/test_bugs.py
--- a/testing/test_bugs.py
+++ b/testing/test_bugs.py
@@ -44,3 +44,29 @@
         ('accept', [''])
     ]
     read_spec(spec, HistoricalTestReader)
+
+
+def test_signal_failure(monkeypatch):
+    import os
+    import pty
+    import signal
+    from pyrepl.unix_console import UnixConsole
+
+    def failing_signal(a, b):
+        raise ValueError
+
+    def really_failing_signal(a, b):
+        raise AssertionError
+
+    mfd, sfd = pty.openpty()
+    try:
+        c = UnixConsole(sfd, sfd)
+        c.prepare()
+        c.restore()
+        monkeypatch.setattr(signal, 'signal', failing_signal)
+        c.prepare()
+        monkeypatch.setattr(signal, 'signal', really_failing_signal)
+        c.restore()
+    finally:
+        os.close(mfd)
+        os.close(sfd)
diff --git a/testing/test_readline.py b/testing/test_readline.py
--- a/testing/test_readline.py
+++ b/testing/test_readline.py
@@ -4,11 +4,12 @@
 
 
 def test_raw_input():
-    readline_wrapper = _ReadlineWrapper()
     master, slave = pty.openpty()
-    readline_wrapper.f_in = slave
+    readline_wrapper = _ReadlineWrapper(slave, slave)
     os.write(master, b'input\n')
-    result = readline_wrapper.raw_input('prompt:')
+
+    result = readline_wrapper.get_reader().readline()
+    #result = readline_wrapper.raw_input('prompt:')
     assert result == 'input'
     # A bytes string on python2, a unicode string on python3.
     assert isinstance(result, str)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to