@@ -136,10 +136,13 @@ def setUpClass(cls):
136136 pdfguiglobals .dbopts .noconfirm = True
137137 cls ._save_cmdargs = list (pdfguiglobals .cmdargs )
138138 cls ._save_configfilename = pdfguiglobals .configfilename
139- mainframe .pdfguicontrol = pdfguicontrol .PDFGuiControl
140- cls ._save_qmrun = pdfguicontrol .PDFGuiControl .QueueManager .run
139+ cls ._save_qmrun = (pdfguicontrol .PDFGuiControl .QueueManager .run ,)
141140 pdfguicontrol .PDFGuiControl .QueueManager .run = lambda self : None
142- cls ._save_factory = mainframe .pdfguicontrol
141+ cls ._save_factory = (mainframe .pdfguicontrol ,)
142+ cls .__pdfguicontrol = None
143+ assert mainframe .pdfguicontrol is pdfguicontrol .pdfguicontrol
144+ mainframe .pdfguicontrol = cls .pdfguicontrol
145+ pdfguicontrol .pdfguicontrol = cls .pdfguicontrol
143146 pdfguiglobals .configfilename = os .devnull
144147 return
145148
@@ -149,8 +152,11 @@ def tearDownClass(cls):
149152 pdfguiglobals .dbopts .noconfirm = cls ._save_noconfirm
150153 pdfguiglobals .cmdargs [:] = cls ._save_cmdargs
151154 pdfguiglobals .configfilename = cls ._save_configfilename
152- pdfguicontrol .PDFGuiControl .QueueManager .run = cls ._save_qmrun
153- mainframe .pdfguicontrol = cls ._save_factory
155+ pdfguicontrol .PDFGuiControl .QueueManager .run , = cls ._save_qmrun
156+ mainframe .pdfguicontrol , = cls ._save_factory
157+ pdfguicontrol .pdfguicontrol , = cls ._save_factory
158+ assert mainframe .pdfguicontrol is pdfguicontrol .pdfguicontrol
159+ cls .__pdfguicontrol = None
154160 return
155161
156162 @classmethod
@@ -159,6 +165,13 @@ def setCmdArgs(cls, args):
159165 pdfguiglobals .cmdargs [:] = args
160166 return
161167
168+ @classmethod
169+ def pdfguicontrol (cls , * args , ** kwargs ):
170+ if cls .__pdfguicontrol is not None :
171+ return cls .__pdfguicontrol
172+ cls .__pdfguicontrol = pdfguicontrol .PDFGuiControl (* args , ** kwargs )
173+ return cls .pdfguicontrol ()
174+
162175 @staticmethod
163176 def _mockUpMainFrame ():
164177 return _TMainFrame ()
0 commit comments