Пример #1
0
def test_create_workspace_selects_proper_remote_host(workspace_config):
    working_dir = workspace_config.root / "foo" / "bar"
    workspace_config.configurations.append(
        RemoteConfig(host="other-host.example.com",
                     directory=Path("other/dir"),
                     shell="bash",
                     shell_options="some options"))
    workspace_config.default_configuration = 1

    # workspace should select host from workspace_config.default_configuration
    workspace = SyncedWorkspace.from_config(workspace_config, working_dir)
    assert workspace.local_root == workspace_config.root
    assert workspace.remote == workspace_config.configurations[1]
    assert workspace.remote_working_dir == workspace_config.configurations[
        1].directory / "foo" / "bar"
    assert workspace.ignores == workspace_config.ignores

    # now it should select host from overrid
    workspace = SyncedWorkspace.from_config(workspace_config,
                                            working_dir,
                                            config_num=0)
    assert workspace.local_root == workspace_config.root
    assert workspace.remote == workspace_config.configurations[0]
    assert workspace.remote_working_dir == workspace_config.configurations[
        0].directory / "foo" / "bar"
    assert workspace.ignores == workspace_config.ignores
Пример #2
0
def test_create_workspace_selects_proper_remote_host(workspace_config):
    working_dir = workspace_config.root / "foo" / "bar"
    workspace_config.configurations.append(
        RemoteConfig(
            host="other-host.example.com",
            directory=Path("other/dir"),
            shell="bash",
            shell_options="some options",
            label="bar",
        ))
    workspace_config.configurations.append(
        RemoteConfig(host="foo.example.com",
                     directory=Path("other/dir"),
                     shell="bash",
                     shell_options="some options",
                     label="foo"))

    workspace_config.default_configuration = 1

    # workspace should select host from workspace_config.default_configuration
    workspace = SyncedWorkspace.from_config(workspace_config, working_dir)
    assert workspace.local_root == workspace_config.root
    assert workspace.remote == workspace_config.configurations[1]
    assert workspace.remote_working_dir == workspace_config.configurations[
        1].directory / "foo" / "bar"
    assert workspace.ignores == workspace_config.ignores
    assert workspace.remote.label == "bar"

    # now it should select host from override
    workspace = SyncedWorkspace.from_config(workspace_config,
                                            working_dir,
                                            remote_host_id=0)
    assert workspace.local_root == workspace_config.root
    assert workspace.remote == workspace_config.configurations[0]
    assert workspace.remote_working_dir == workspace_config.configurations[
        0].directory / "foo" / "bar"
    assert workspace.ignores == workspace_config.ignores

    # now it should select from the label passed
    workspace = SyncedWorkspace.from_config(workspace_config,
                                            working_dir,
                                            remote_host_id="foo")
    assert workspace.local_root == workspace_config.root
    assert workspace.remote == workspace_config.configurations[2]
    assert workspace.remote_working_dir == workspace_config.configurations[
        2].directory / "foo" / "bar"
    assert workspace.ignores == workspace_config.ignores
    assert workspace_config.configurations[2].label == "foo"

    # now it should raise an exception as the label is not present
    with pytest.raises(InvalidRemoteHostLabel):
        workspace = SyncedWorkspace.from_config(workspace_config,
                                                working_dir,
                                                remote_host_id="iamnotpresent")
Пример #3
0
def test_create_workspace(workspace_config):
    working_dir = workspace_config.root / "foo" / "bar"
    workspace = SyncedWorkspace.from_config(workspace_config, working_dir)

    assert workspace.local_root == workspace_config.root
    assert workspace.remote == workspace_config.configurations[0]
    assert workspace.remote_working_dir == workspace_config.configurations[
        0].directory / "foo" / "bar"
    assert workspace.ignores == workspace_config.ignores
Пример #4
0
def workspace(workspace_config):
    workspace_config.ignores.pull.append("build")
    working_dir = workspace_config.root / "foo" / "bar"
    working_dir.mkdir(parents=True)
    return SyncedWorkspace.from_config(workspace_config, working_dir)