예제 #1
0
import pathlib
import poetry_dev

import pytest
import subprocess

from typer.testing import CliRunner

from poetry_dev import app

runner = CliRunner()


def test_path(tmp_path: pathlib.Path, monkeypatch):

    bar_pyproject_toml = tmp_path / "bar_pyproject_toml"
    bar_pyproject_toml.write_text("""[tool.poetry]
name = "bar"
version = "0.2.0"

[tool.poetry.dependencies]
python = "^3.7"
foo = "0.1.0"

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"
""")

    foo_pyproject_toml = tmp_path / "foo_pyproject_toml"
    foo_pyproject_toml.write_text("""[tool.poetry]
예제 #2
0
def test_build(runner: CliRunner):
    with runner.isolated_filesystem() as path:
        result = runner.invoke(app, "build")
        assert result.exit_code == 0
        index = Path(path) / "dist" / "index.html"
        assert index.exists()
예제 #3
0
def test_serve(runner: CliRunner):
    with mock.patch("main.serve") as mock_serve:
        result = runner.invoke(app, "serve")
        assert result.exit_code == 0
        mock_serve.assert_called_once_with()
예제 #4
0
def runner():
    yield CliRunner()
예제 #5
0
def test_version(runner: CliRunner):
    with runner.isolated_filesystem():
        result = runner.invoke(app, "version")
        assert result.exit_code == 0
        assert result.stdout == "Version: 0.1.0\n"
예제 #6
0
def test_start_click_cli() -> None:
    runner = CliRunner()
    result = runner.invoke(app, ["hilfe"])
    assert "Hilfe!" in result.stdout
    assert result.exit_code == 0
예제 #7
0
def test_command_line_interface():
    """Test the CLI."""
    runner = CliRunner()
    result = runner.invoke(tools.APP, ["--help"])
    assert result.exit_code == 0
    assert "toolcraft" in result.output
 def setUpClass(cls) -> None:
     cls.runner = CliRunner()
예제 #9
0
def runner():
    return CliRunner(mix_stderr=False)
예제 #10
0
def test_refuse_overwrite(tmp_path):
    (tmp_path / ".nbautoexport").touch()
    runner = CliRunner()
    result = runner.invoke(app, ["configure", str(tmp_path)])
    assert result.exit_code == 1
    assert "Detected existing autoexport configuration at" in result.output
예제 #11
0
    def test_cli_version(self):
        runner = CliRunner()

        res = runner.invoke(cli.app, ["version"])
        assert res.exit_code == 0
        assert res.output == f"hue-api version: {__version__}\n"
예제 #12
0
def test_configure_no_directory_error():
    result = CliRunner().invoke(app, ["configure"])

    assert result.exit_code == 2
    assert "Error: Missing argument 'DIRECTORY'." in result.stdout
예제 #13
0
def test_configure_no_jupyter_config_warning(tmp_path, monkeypatch):
    monkeypatch.setenv("JUPYTER_CONFIG_DIR", str(tmp_path))

    result = CliRunner().invoke(app, ["configure", str(tmp_path)])
    assert result.exit_code == 0
    assert "Warning: nbautoexport is not properly installed with Jupyter." in result.output
예제 #14
0
class TestGenerateToken(TestCase):
    mock_config_patcher = None
    mock_cobald_config_loader_patcher = None

    @classmethod
    def setUpClass(cls) -> None:
        cls.mock_config_patcher = patch("tardis.rest.app.security.Configuration")
        cls.mock_config = cls.mock_config_patcher.start()

        cls.mock_cobald_config_loader_patcher = patch(
            "tardis.rest.token_generator.generate_token.load"
        )
        cls.mock_cobald_config_loader = cls.mock_cobald_config_loader_patcher.start()

    @classmethod
    def tearDownClass(cls) -> None:
        cls.mock_config_patcher.stop()
        cls.mock_cobald_config_loader_patcher.stop()

    def setUp(self) -> None:
        self.app = Typer()
        self.app.command()(generate_token)

        self.runner = CliRunner()

        config = self.mock_config.return_value
        config.Services.restapi.secret_key = (
            "752e003f636f402cc23728e185ce8c9eef27b7e02cf509b3015f7757e625b8e4"
        )
        config.Services.restapi.algorithm = "HS256"

    @staticmethod
    def clear_lru_cache():
        get_algorithm.cache_clear()
        get_secret_key.cache_clear()

    def test_generate_token(self):
        result = self.runner.invoke(self.app)
        self.assertNotEqual(result.exit_code, 0)
        self.assertTrue("Missing option '--user-name'" in result.stdout)

        result = self.runner.invoke(self.app, ["--user-name=test"])
        self.assertEqual(result.exit_code, 1)
        self.assertTrue(
            "Either a config-file or a secret-key and algorithm needs to be specified!"
            in result.stdout
        )

        expected_token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ0ZXN0Iiwic2NvcGVzIjpbInJlc291cmNlczpnZXQiXX0.JtjroDVX2FlHI-DFO3XErRutDjvcZwbZF4Bqx736JTc"  # noqa: B950

        result = self.runner.invoke(
            self.app,
            [
                "--user-name=test",
                "--algorithm=HS256",
                "--secret-key=752e003f636f402cc23728e185ce8c9eef27b7e02cf509b3015f7757e625b8e4",  # noqa: B950
            ],
        )
        self.assertEqual(result.exit_code, 0)
        self.assertEqual(result.stdout.strip(), expected_token)

        self.clear_lru_cache()

        result = self.runner.invoke(
            self.app, ["--user-name=test", "--config-file=test.yml"]
        )

        self.mock_cobald_config_loader.assert_called_once_with("test.yml")
        self.assertEqual(result.exit_code, 0)
        self.assertEqual(result.stdout.strip(), expected_token)
""" Regenerate golden-master """
import shutil
from pathlib import Path

from typer.testing import CliRunner

from openapi_python_client.cli import app

if __name__ == "__main__":
    runner = CliRunner()
    openapi_path = Path(__file__).parent / "fastapi_app" / "openapi.json"
    gm_path = Path(__file__).parent / "golden-master"
    shutil.rmtree(gm_path, ignore_errors=True)
    output_path = Path.cwd() / "my-test-api-client"
    shutil.rmtree(output_path, ignore_errors=True)
    config_path = Path(__file__).parent / "config.yml"

    result = runner.invoke(
        app, [f"--config={config_path}", "generate", f"--path={openapi_path}"])
    if result.stdout:
        print(result.stdout)
    if result.exception:
        raise result.exception
    output_path.rename(gm_path)
예제 #16
0
from pathlib import Path

from typer.testing import CliRunner

from pipenv_poetry_migrate import __version__
from pipenv_poetry_migrate.cli import app

runner = CliRunner(mix_stderr=False)


def test_main(pipfile: Path, pyproject_toml: Path):
    argv = ["-f", str(pipfile), "-t", str(pyproject_toml), "-n"]
    result = runner.invoke(app, argv)

    assert result.exit_code == 0
    assert result.stdout != ""


def test_main_show_version():
    argv = ["-v"]
    result = runner.invoke(app, argv)

    assert result.exit_code == 0
    assert __version__ in result.stdout
    assert result.stderr == ""


def test_main_raise_pipfile_not_found_error(pyproject_toml: Path):
    argv = ["-f", "not_found.toml", "-t", str(pyproject_toml), "-n"]
    result = runner.invoke(app, argv)