2
2
import os
3
3
import rlcompleter
4
4
import sys
5
+ import tempfile
5
6
import unittest
6
7
from code import InteractiveConsole
7
8
from functools import partial
@@ -603,57 +604,63 @@ def test_global_namespace_completion(self):
603
604
604
605
@patch ("_pyrepl.curses.tigetstr" , lambda x : b"" )
605
606
class TestUnivEventQueue (TestCase ):
607
+ def setUp (self ):
608
+ self .file = tempfile .TemporaryFile ()
609
+
610
+ def tearDown (self ) -> None :
611
+ self .file .close ()
612
+
606
613
def test_get (self ):
607
- eq = EventQueue (sys . stdout .fileno (), "utf-8" )
614
+ eq = EventQueue (self . file .fileno (), "utf-8" )
608
615
event = Event ("key" , "a" , b"a" )
609
616
eq .insert (event )
610
617
self .assertEqual (eq .get (), event )
611
618
612
619
def test_empty (self ):
613
- eq = EventQueue (sys . stdout .fileno (), "utf-8" )
620
+ eq = EventQueue (self . file .fileno (), "utf-8" )
614
621
self .assertTrue (eq .empty ())
615
622
eq .insert (Event ("key" , "a" , b"a" ))
616
623
self .assertFalse (eq .empty ())
617
624
618
625
def test_flush_buf (self ):
619
- eq = EventQueue (sys . stdout .fileno (), "utf-8" )
626
+ eq = EventQueue (self . file .fileno (), "utf-8" )
620
627
eq .buf .extend (b"test" )
621
628
self .assertEqual (eq .flush_buf (), b"test" )
622
629
self .assertEqual (eq .buf , bytearray ())
623
630
624
631
def test_insert (self ):
625
- eq = EventQueue (sys . stdout .fileno (), "utf-8" )
632
+ eq = EventQueue (self . file .fileno (), "utf-8" )
626
633
event = Event ("key" , "a" , b"a" )
627
634
eq .insert (event )
628
635
self .assertEqual (eq .events [0 ], event )
629
636
630
637
@patch ("_pyrepl.unix_eventqueue.keymap" )
631
638
def test_push_with_key_in_keymap (self , mock_keymap ):
632
639
mock_keymap .compile_keymap .return_value = {"a" : "b" }
633
- eq = EventQueue (sys . stdout .fileno (), "utf-8" )
640
+ eq = EventQueue (self . file .fileno (), "utf-8" )
634
641
eq .keymap = {b"a" : "b" }
635
642
eq .push ("a" )
636
- self . assertTrue ( mock_keymap .compile_keymap .called )
643
+ mock_keymap .compile_keymap .assert_called ( )
637
644
self .assertEqual (eq .events [0 ].evt , "key" )
638
645
self .assertEqual (eq .events [0 ].data , "b" )
639
646
640
647
@patch ("_pyrepl.unix_eventqueue.keymap" )
641
648
def test_push_without_key_in_keymap (self , mock_keymap ):
642
649
mock_keymap .compile_keymap .return_value = {"a" : "b" }
643
- eq = EventQueue (sys . stdout .fileno (), "utf-8" )
650
+ eq = EventQueue (self . file .fileno (), "utf-8" )
644
651
eq .keymap = {b"c" : "d" }
645
652
eq .push ("a" )
646
- self . assertTrue ( mock_keymap .compile_keymap .called )
653
+ mock_keymap .compile_keymap .assert_called ( )
647
654
self .assertEqual (eq .events [0 ].evt , "key" )
648
655
self .assertEqual (eq .events [0 ].data , "a" )
649
656
650
657
@patch ("_pyrepl.unix_eventqueue.keymap" )
651
658
def test_push_with_keymap_in_keymap (self , mock_keymap ):
652
659
mock_keymap .compile_keymap .return_value = {"a" : "b" }
653
- eq = EventQueue (sys . stdout .fileno (), "utf-8" )
660
+ eq = EventQueue (self . file .fileno (), "utf-8" )
654
661
eq .keymap = {b"a" : {b"b" : "c" }}
655
662
eq .push ("a" )
656
- self . assertTrue ( mock_keymap .compile_keymap .called )
663
+ mock_keymap .compile_keymap .assert_called ( )
657
664
self .assertTrue (eq .empty ())
658
665
eq .push ("b" )
659
666
self .assertEqual (eq .events [0 ].evt , "key" )
@@ -665,10 +672,10 @@ def test_push_with_keymap_in_keymap(self, mock_keymap):
665
672
@patch ("_pyrepl.unix_eventqueue.keymap" )
666
673
def test_push_with_keymap_in_keymap_and_escape (self , mock_keymap ):
667
674
mock_keymap .compile_keymap .return_value = {"a" : "b" }
668
- eq = EventQueue (sys . stdout .fileno (), "utf-8" )
675
+ eq = EventQueue (self . file .fileno (), "utf-8" )
669
676
eq .keymap = {b"a" : {b"b" : "c" }}
670
677
eq .push ("a" )
671
- self . assertTrue ( mock_keymap .compile_keymap .called )
678
+ mock_keymap .compile_keymap .assert_called ( )
672
679
self .assertTrue (eq .empty ())
673
680
eq .flush_buf ()
674
681
eq .push ("\033 " )
@@ -679,7 +686,7 @@ def test_push_with_keymap_in_keymap_and_escape(self, mock_keymap):
679
686
self .assertEqual (eq .events [1 ].data , "b" )
680
687
681
688
def test_push_special_key (self ):
682
- eq = EventQueue (sys . stdout .fileno (), "utf-8" )
689
+ eq = EventQueue (self . file .fileno (), "utf-8" )
683
690
eq .keymap = {}
684
691
eq .push ("\x1b " )
685
692
eq .push ("[" )
@@ -688,7 +695,7 @@ def test_push_special_key(self):
688
695
self .assertEqual (eq .events [0 ].data , "\x1b " )
689
696
690
697
def test_push_unrecognized_escape_sequence (self ):
691
- eq = EventQueue (sys . stdout .fileno (), "utf-8" )
698
+ eq = EventQueue (self . file .fileno (), "utf-8" )
692
699
eq .keymap = {}
693
700
eq .push ("\x1b " )
694
701
eq .push ("[" )
0 commit comments