Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
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