def generate_runpath(self): """ Returns runpath directory based on parent object and configuration. """ if self.parent and self.parent.runpath: return os.path.join(self.parent.runpath, self.uid()) runpath = self.cfg.runpath if runpath: return self.cfg.runpath(self) if callable(runpath) else runpath else: return default_runpath(self)
def generate_runpath(self): """ Returns runpath directory based on parent object and configuration. """ # local config has highest precedence runpath = self.cfg.get_local("runpath") if runpath: return runpath(self) if callable(runpath) else runpath # else get container's runpath and append uid elif self.parent and self.parent.runpath: return os.path.join(self.parent.runpath, slugify(self.uid())) else: return default_runpath(self)
def test_testplan_runpath(): """TODO.""" def runpath_maker(obj): return "{sep}tmp{sep}custom".format(sep=os.sep) plan = Testplan(name="MyPlan", port=800, parse_cmdline=False) assert plan.runpath == default_runpath(plan._runnable) path = "/var/tmp/user" plan = TestplanMock(name="MyPlan", port=800, runpath=path) assert plan.runpath == path plan = TestplanMock(name="MyPlan", port=800, runpath=runpath_maker) assert plan.runpath == runpath_maker(plan._runnable)
def test_startup(): """Test initializing and running the interactive runner.""" target = runnable.TestRunner(name="TestRunner") mock_server = mock.MagicMock() with mock.patch("cheroot.wsgi.Server", return_value=mock_server): irunner = base.TestRunnerIHandler(target) irunner.setup() assert irunner.target.runpath == default_runpath(target) mock_server.prepare.assert_called_once() mock_server.bind_addr = ("hostname", 1234) assert irunner.http_handler_info == mock_server.bind_addr irunner.run() mock_server.serve.assert_called_once() irunner.teardown()
def test_multitest_drivers_in_testplan(runpath): """TODO.""" for idx, opts in enumerate(( dict(name="MyPlan", parse_cmdline=False, runpath=runpath), dict(name="MyPlan", parse_cmdline=False), )): plan = Testplan(**opts) server = TCPServer(name="server") client = TCPClient( name="client", host=context(server.cfg.name, "{{host}}"), port=context(server.cfg.name, "{{port}}"), ) mtest = MultiTest( name="Mtest", suites=[MySuite()], environment=[server, client], initial_context={"test_key": "test_value"}, ) plan.add(mtest) assert server.status.tag == ResourceStatus.NONE assert client.status.tag == ResourceStatus.NONE with log_propagation_disabled(TESTPLAN_LOGGER): plan.run() res = plan.result assert res.run is True if idx == 0: assert plan.runpath == runpath else: assert plan.runpath == default_runpath(plan._runnable) assert mtest.runpath == os.path.join(plan.runpath, mtest.uid()) assert server.runpath == os.path.join(mtest.runpath, server.uid()) assert client.runpath == os.path.join(mtest.runpath, client.uid()) assert server.status.tag == ResourceStatus.STOPPED assert client.status.tag == ResourceStatus.STOPPED
def test_testplan_runpath(): """TODO.""" def runpath_maker(obj): return '{sep}tmp{sep}custom'.format(sep=os.sep) plan = Testplan(name='MyPlan', port=800, parse_cmdline=False) assert plan.runpath is None plan.run() assert plan.runpath == default_runpath(plan._runnable) path = '/var/tmp/user' plan = Testplan(name='MyPlan', port=800, parse_cmdline=False, runpath=path) assert plan.runpath is None plan.run() assert plan.runpath == path plan = Testplan(name='MyPlan', port=800, parse_cmdline=False, runpath=runpath_maker) assert plan.runpath is None plan.run() assert plan.runpath == runpath_maker(plan._runnable)
def test_multitest_drivers(runpath): """TODO.""" for idx, opts in enumerate( ( dict(name="Mtest", suites=[MySuite()], runpath=runpath), dict(name="Mtest", suites=[MySuite()]), ) ): server = TCPServer(name="server") client = TCPClient( name="client", host=context(server.cfg.name, "{{host}}"), port=context(server.cfg.name, "{{port}}"), ) opts.update( environment=[server, client], initial_context={"test_key": "test_value"}, stdout_style=defaults.STDOUT_STYLE, test_filter=Filter(), test_sorter=NoopSorter(), ) mtest = MultiTest(**opts) assert server.status.tag == ResourceStatus.NONE assert client.status.tag == ResourceStatus.NONE res = mtest.run() assert res.run is True assert res.report.passed if idx == 0: assert mtest.runpath == runpath else: assert mtest.runpath == default_runpath(mtest) assert server.runpath == os.path.join(mtest.runpath, server.uid()) assert client.runpath == os.path.join(mtest.runpath, client.uid()) assert server.status.tag == ResourceStatus.STOPPED assert client.status.tag == ResourceStatus.STOPPED