def test_validate_working_dir_reject_task_or_actor(self): # Can't pass working_dir for tasks/actors. with pytest.raises(NotImplementedError): parse_and_validate_working_dir( { "working_dir": "." }, is_task_or_actor=True)
def test_validate_remote_invalid_extensions(self): for uri in [ "https://some_domain.com/path/file", "s3://bucket/file", "gs://bucket/file" ]: with pytest.raises( ValueError, match="Only .zip files supported for remote URIs."): parse_and_validate_working_dir(uri)
def test_validate_working_dir_valid_path(self, test_directory, absolute_path): subdir, _, _, _ = test_directory rel1 = "." assert parse_and_validate_working_dir( rel1, is_task_or_actor=False) == rel1 if absolute_path: subdir = subdir.resolve() rel2 = str(subdir) assert parse_and_validate_working_dir( rel2, is_task_or_actor=False) == rel2
def test_validate_remote_valid_input(self): for uri in [ "https://some_domain.com/path/file.zip", "s3://bucket/file.zip", "gs://bucket/file.zip" ]: working_dir = parse_and_validate_working_dir(uri) assert working_dir == uri
def test_validate_working_dir_invalid_types(self): with pytest.raises(TypeError): parse_and_validate_working_dir( { "working_dir": 1 }, is_task_or_actor=False)
def test_validate_working_dir_invalid_path(self): with pytest.raises(ValueError): parse_and_validate_working_dir("fake_path", is_task_or_actor=False)
def test_validate_working_dir_absolute_path(self, test_directory): subdir, _, _, _ = test_directory abspath = str(subdir.resolve()) assert parse_and_validate_working_dir( abspath, is_task_or_actor=False) == abspath
def test_validate_invalid_type(self): with pytest.raises(TypeError): parse_and_validate_working_dir(1)
def test_validate_bad_uri(self): with pytest.raises(ValueError, match="a valid URI"): parse_and_validate_working_dir("unknown://abc")
def test_validate_s3_valid_input(self): working_dir = parse_and_validate_working_dir("s3://bucket/file.zip") assert working_dir == "s3://bucket/file.zip"
def test_validate_s3_invalid_extension(self): with pytest.raises( ValueError, match="Only .zip files supported for S3 URIs."): parse_and_validate_working_dir("s3://bucket/file")