summaryrefslogtreecommitdiff
path: root/tests/session/cmd/test_quickstart.py
blob: 2ccc290d0d120184fd12b7d658253e866a5b9f69 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
from __future__ import annotations

import sys
from textwrap import dedent

from packaging.version import Version

from tox.pytest import ToxProjectCreator
from tox.version import version as __version__


def test_quickstart_ok(tox_project: ToxProjectCreator) -> None:
    project = tox_project({})
    tox_ini = project.path / "demo" / "tox.ini"
    assert not tox_ini.exists()

    outcome = project.run("q", str(tox_ini.parent))
    outcome.assert_success()

    assert tox_ini.exists()
    found = tox_ini.read_text()

    version = str(Version(__version__.split("+")[0]))
    text = f"""
            [tox]
            env_list =
                py{''.join(str(i) for i in sys.version_info[0:2])}
            minversion = {version}

            [testenv]
            description = run the tests with pytest
            package = wheel
            wheel_build_env = .pkg
            deps =
                pytest>=6
            commands =
                pytest {{tty:--color=yes}} {{posargs}}
        """
    content = dedent(text).lstrip()
    assert found == content


def test_quickstart_refuse(tox_project: ToxProjectCreator) -> None:
    project = tox_project({"tox.ini": ""})
    outcome = project.run("q", str(project.path))
    outcome.assert_failed(code=1)
    assert "tox.ini already exist, refusing to overwrite" in outcome.out


def test_quickstart_help(tox_project: ToxProjectCreator) -> None:
    outcome = tox_project({"tox.ini": ""}).run("q", "-h")
    outcome.assert_success()