def _ssh_factory(cloud): yield SSHFileSystem( host=cloud.host, port=cloud.port, user=TEST_SSH_USER, keyfile=TEST_SSH_KEY_PATH, )
def test_init(): fs = SSHFileSystem(user="******", host="12.34.56.78", port="1234", password="******") assert fs.fs_args["username"] == "test" assert fs.fs_args["host"] == "12.34.56.78" assert fs.fs_args["port"] == "1234" assert fs.fs_args["password"] == fs.fs_args["passphrase"] == "xxx"
def _sshfs(resource: dict): from tpi import TerraformProviderIterative with TerraformProviderIterative.pemfile(resource) as pem: fs = SSHFileSystem( host=resource["instance_ip"], user="******", keyfile=pem, ) yield fs
def test_get_kwargs_from_urls(): user = "******" host = "123.45.67.89" port = 1234 path = "/path/to/dir" # URL ssh://[user@]host.xz[:port]/path url = f"ssh://{user}@{host}:{port}{path}" assert SSHFileSystem._get_kwargs_from_urls(url) == { "username": user, "host": host, "port": port, } # SCP-like URL ssh://[user@]host.xz:/absolute/path url = f"ssh://{user}@{host}:{path}" assert SSHFileSystem._get_kwargs_from_urls(url) == { "username": user, "host": host, }
def test_ssh_host_override_from_config(mock_file, config, expected_host): fs = SSHFileSystem(**config) assert fs.fs_args["host"] == expected_host
def test_ssh_ask_password(mocker): mocker.patch("dvc_objects.fs.implementations.ssh.ask_password", return_value="fish") fs = SSHFileSystem(user="******", host="2.2.2.2", ask_password=True) assert fs.fs_args["password"] == fs.fs_args["passphrase"] == "fish"
def test_ssh_gss_auth(mock_file, config, expected_gss_auth): fs = SSHFileSystem(**config) assert fs.fs_args["gss_auth"] == expected_gss_auth
def test_ssh_multi_identity_files(mock_file): fs = SSHFileSystem(host="example.com") assert fs.fs_args.get("client_keys") == ["file_1", "file_2"]
def test_ssh_keyfile(mock_file, config, expected_keyfile): fs = SSHFileSystem(**config) expected_keyfiles = ([ os.path.expanduser(path) for path in expected_keyfile ] if expected_keyfile else expected_keyfile) assert fs.fs_args.get("client_keys") == expected_keyfiles
def test_ssh_port(mock_file, config, expected_port): fs = SSHFileSystem(**config) assert fs.fs_args["port"] == expected_port
def test_ssh_user(mock_file, config, expected_user): fs = SSHFileSystem(**config) assert fs.fs_args["username"] == expected_user