##// END OF EJS Templates
Move configuration of Python test controllers into setup()
Thomas Kluyver -
Show More
@@ -127,13 +127,14 b' class PyTestController(TestController):'
127 127 #: str, Python command to execute in subprocess
128 128 pycmd = None
129 129
130 def __init__(self, section):
130 def __init__(self, section, options):
131 131 """Create new test runner."""
132 132 TestController.__init__(self)
133 133 self.section = section
134 134 # pycmd is put into cmd[2] in PyTestController.launch()
135 135 self.cmd = [sys.executable, '-c', None, section]
136 136 self.pycmd = "from IPython.testing.iptest import run_iptest; run_iptest()"
137 self.options = options
137 138
138 139 def setup(self):
139 140 ipydir = TemporaryDirectory()
@@ -145,6 +146,14 b' class PyTestController(TestController):'
145 146 # This means we won't get odd effects from our own matplotlib config
146 147 self.env['MPLCONFIGDIR'] = workingdir.name
147 148
149 # From options:
150 if self.options.xunit:
151 self.add_xunit()
152 if self.options.coverage:
153 self.add_coverage()
154 self.env['IPTEST_SUBPROC_STREAMS'] = self.options.subproc_streams
155 self.cmd.extend(self.options.extra_args)
156
148 157 @property
149 158 def will_run(self):
150 159 try:
@@ -273,28 +282,13 b' def prepare_controllers(options):'
273 282 test_sections['parallel'].enabled = False
274 283
275 284 c_js = [JSController(name) for name in js_testgroups]
276 c_py = [PyTestController(name) for name in py_testgroups]
277
278 configure_py_controllers(c_py, xunit=options.xunit,
279 coverage=options.coverage, subproc_streams=options.subproc_streams,
280 extra_args=options.extra_args)
285 c_py = [PyTestController(name, options) for name in py_testgroups]
281 286
282 287 controllers = c_py + c_js
283 288 to_run = [c for c in controllers if c.will_run]
284 289 not_run = [c for c in controllers if not c.will_run]
285 290 return to_run, not_run
286 291
287 def configure_py_controllers(controllers, xunit=False, coverage=False,
288 subproc_streams='capture', extra_args=()):
289 """Apply options for a collection of TestController objects."""
290 for controller in controllers:
291 if xunit:
292 controller.add_xunit()
293 if coverage:
294 controller.add_coverage()
295 controller.env['IPTEST_SUBPROC_STREAMS'] = subproc_streams
296 controller.cmd.extend(extra_args)
297
298 292 def do_run(controller, buffer_output=True):
299 293 """Setup and run a test controller.
300 294
General Comments 0
You need to be logged in to leave comments. Login now