Exemplo n.º 1
0
def test_bash_config_windows_error(mocker):
    mocker.patch(
        "conda_env_tracker.gateways.utils.get_platform_name",
        mocker.Mock(return_value="win"),
    )
    with pytest.raises(WindowsError) as err:
        io.add_auto_to_bash_config_file()
    assert str(err.value) == "Windows is unsupported at this time"
Exemplo n.º 2
0
def test_do_not_add_auto_to_bash(mocker):
    symlink_mock = mocker.patch("conda_env_tracker.gateways.io.os.symlink")
    read_mock = mocker.patch("conda_env_tracker.gateways.io.Path.read_text")
    mocker.patch("conda_env_tracker.utils.prompt_yes_no",
                 mocker.Mock(return_value=False))

    io.add_auto_to_bash_config_file()

    symlink_mock.assert_not_called()
    read_mock.assert_called_once_with()
Exemplo n.º 3
0
def test_add_auto_when_bash_missing(mocker):
    write_mock = mocker.patch("conda_env_tracker.gateways.io.Path.write_text")
    read_mock = mocker.patch("conda_env_tracker.gateways.io.Path.read_text")
    mocker.patch("conda_env_tracker.utils.prompt_yes_no",
                 mocker.Mock(return_value=True))
    mocker.patch("conda_env_tracker.gateways.io.Path.exists",
                 mocker.Mock(return_value=False))
    io.add_auto_to_bash_config_file()

    write_mock.assert_called_once_with(CET_AUTO_BASHRC_ADDITION)
    read_mock.assert_not_called()
Exemplo n.º 4
0
def test_add_auto_when_bash_missing(mocker):
    write_mock = mocker.patch("conda_env_tracker.gateways.io.Path.write_text")
    read_mock = mocker.patch("conda_env_tracker.gateways.io.Path.read_text")
    mocker.patch("conda_env_tracker.utils.prompt_yes_no",
                 mocker.Mock(return_value=True))
    mocker.patch("conda_env_tracker.gateways.io.Path.exists",
                 mocker.Mock(return_value=False))
    addition = f"\nsource {Path.home()}/.cet/cet-auto.sh\n"

    io.add_auto_to_bash_config_file()

    write_mock.assert_called_once_with(addition)
    read_mock.assert_not_called()
Exemplo n.º 5
0
def test_add_auto_to_bash_skipped(mocker, platform, bashrc_contents):
    write_mock = mocker.patch("conda_env_tracker.gateways.io.Path.write_text")
    read_mock = mocker.patch(
        "conda_env_tracker.gateways.io.Path.read_text",
        mocker.Mock(return_value=bashrc_contents),
    )
    mocker.patch("conda_env_tracker.gateways.io.Path.exists",
                 mocker.Mock(return_value=True))
    mocker.patch(
        "conda_env_tracker.gateways.utils.get_platform_name",
        mocker.Mock(return_value=platform),
    )

    io.add_auto_to_bash_config_file()

    write_mock.assert_not_called()
    read_mock.assert_called_once_with()
Exemplo n.º 6
0
def test_add_auto_to_bash_occurs(mocker, platform, bashrc_contents):
    write_mock = mocker.patch("conda_env_tracker.gateways.io.Path.write_text")
    read_mock = mocker.patch(
        "conda_env_tracker.gateways.io.Path.read_text",
        mocker.Mock(return_value=bashrc_contents),
    )
    mocker.patch("conda_env_tracker.utils.prompt_yes_no",
                 mocker.Mock(return_value=True))
    mocker.patch("conda_env_tracker.gateways.io.Path.exists",
                 mocker.Mock(return_value=True))
    mocker.patch(
        "conda_env_tracker.gateways.utils.get_platform_name",
        mocker.Mock(return_value=platform),
    )
    mocker.patch("os.path.getmtime", return_value=0)
    expected = bashrc_contents + CET_AUTO_BASHRC_ADDITION

    io.add_auto_to_bash_config_file()

    write_mock.assert_called_once_with(expected)
    read_mock.assert_called_once_with()
Exemplo n.º 7
0
def test_add_auto_to_bash_occurs(mocker, platform, bashrc_contents):
    write_mock = mocker.patch("conda_env_tracker.gateways.io.Path.write_text")
    read_mock = mocker.patch(
        "conda_env_tracker.gateways.io.Path.read_text",
        mocker.Mock(return_value=bashrc_contents),
    )
    mocker.patch("conda_env_tracker.utils.prompt_yes_no",
                 mocker.Mock(return_value=True))
    mocker.patch("conda_env_tracker.gateways.io.Path.exists",
                 mocker.Mock(return_value=True))
    mocker.patch(
        "conda_env_tracker.gateways.utils.get_platform_name",
        mocker.Mock(return_value=platform),
    )
    mocker.patch("os.path.getmtime", return_value=0)
    addition = f"\nsource {Path.home()}/.cet/cet-auto.sh\n"
    expected = bashrc_contents + addition

    io.add_auto_to_bash_config_file()

    write_mock.assert_called_once_with(expected)
    read_mock.assert_called_once_with()
Exemplo n.º 8
0
def test_move_auto_to_end_of_bash_config(mocker, platform, bashrc_contents):
    """Only moved when conda initialize comes after the cet auto section."""
    write_mock = mocker.patch("conda_env_tracker.gateways.io.Path.write_text")
    read_mock = mocker.patch(
        "conda_env_tracker.gateways.io.Path.read_text",
        mocker.Mock(return_value=bashrc_contents),
    )
    mocker.patch("conda_env_tracker.utils.prompt_yes_no",
                 mocker.Mock(return_value=True))
    mocker.patch("conda_env_tracker.gateways.io.Path.exists",
                 mocker.Mock(return_value=True))
    mocker.patch(
        "conda_env_tracker.gateways.utils.get_platform_name",
        mocker.Mock(return_value=platform),
    )
    mocker.patch("os.path.getmtime", return_value=0)
    expected = (bashrc_contents.replace(CET_AUTO_BASHRC_ADDITION, "") +
                CET_AUTO_BASHRC_ADDITION)

    io.add_auto_to_bash_config_file()

    write_mock.assert_called_once_with(expected)
    read_mock.assert_called_once_with()
Exemplo n.º 9
0
def test_replace_old_auto(mocker, platform, bashrc_contents):
    write_mock = mocker.patch("conda_env_tracker.gateways.io.Path.write_text")
    read_mock = mocker.patch(
        "conda_env_tracker.gateways.io.Path.read_text",
        mocker.Mock(return_value=bashrc_contents),
    )
    mocker.patch("conda_env_tracker.utils.prompt_yes_no",
                 mocker.Mock(return_value=True))
    mocker.patch("conda_env_tracker.gateways.io.Path.exists",
                 mocker.Mock(return_value=True))
    mocker.patch(
        "conda_env_tracker.gateways.utils.get_platform_name",
        mocker.Mock(return_value=platform),
    )
    mocker.patch("os.path.getmtime", return_value=0)
    expected = (bashrc_contents.replace(
        f"source {Path.home() / '.cet' / 'cet-auto.sh'}", "") +
                CET_AUTO_BASHRC_ADDITION)

    io.add_auto_to_bash_config_file()

    write_mock.assert_called_once_with(expected)
    read_mock.assert_called_once_with()
Exemplo n.º 10
0
def setup_auto_bash_config(activate: bool = False,
                           sync: bool = False,
                           yes: bool = False):
    """Setup bash config to automatically use conda env tracker push/pull when navigating to git repos"""
    # pylint: disable=redefined-outer-name
    add_auto_to_bash_config_file(activate=activate, sync=sync, yes=yes)
Exemplo n.º 11
0
def setup_auto(activate: bool = False, sync: bool = False, yes: bool = False) -> None:
    """Setup the automatic use of cet push/pull when navigating to git repos"""
    # pylint: disable=redefined-outer-name
    link_auto()
    add_auto_to_bash_config_file(activate=activate, sync=sync, yes=yes)