def test_catch_bad_metadata_file_requests_metadata_is_not_stdout_but_input_and_output_are_pipes( tmpdir): metadata_writer = MetadataWriter(suppress_output=False)( output_file=str(tmpdir.join("metadata"))) aws_encryption_sdk_cli._catch_bad_metadata_file_requests( metadata_writer, "-", "-")
def test_catch_bad_metadata_file_requests_metadata_is_dir(tmpdir): metadata_writer = MetadataWriter(suppress_output=False)(output_file=str(tmpdir)) with pytest.raises(BadUserArgumentError) as excinfo: aws_encryption_sdk_cli._catch_bad_metadata_file_requests(metadata_writer, "-", "-") excinfo.match(r"Metadata output cannot be a directory")
def test_catch_bad_metadata_file_requests_metadata_and_output_are_stdout(): metadata_writer = MetadataWriter(suppress_output=False)(output_file="-") with pytest.raises(BadUserArgumentError) as excinfo: aws_encryption_sdk_cli._catch_bad_metadata_file_requests(metadata_writer, "-", "-") excinfo.match(r"Metadata output cannot be stdout when output is stdout")
def test_catch_bad_metadata_file_requests_metadata_all_are_unique_files(tmpdir): source = tmpdir.join("source") metadata_file = tmpdir.join("metadata") destination = tmpdir.join("destination") metadata_writer = MetadataWriter(suppress_output=False)(output_file=str(metadata_file)) aws_encryption_sdk_cli._catch_bad_metadata_file_requests(metadata_writer, str(source), str(destination))
def test_catch_bad_metadata_file_requests_metadata_is_empty(tmpdir): metadata_writer = MetadataWriter(suppress_output=False)(output_file="") # __call__ resolves empty output file to current directory metadata_writer.output_file = "" with pytest.raises(BadUserArgumentError) as excinfo: aws_encryption_sdk_cli._catch_bad_metadata_file_requests(metadata_writer, "", "") excinfo.match("Metadata output file name cannot be empty")
def test_catch_bad_metadata_file_requests_metadata_in_source_or_dest_dir(tmpdir, match): source = tmpdir.mkdir("source") destination = tmpdir.mkdir("destination") if match == "input": metadata_file = source.join("metadata") else: metadata_file = destination.join("metadata") metadata_writer = MetadataWriter(suppress_output=False)(output_file=str(metadata_file)) with pytest.raises(BadUserArgumentError) as excinfo: aws_encryption_sdk_cli._catch_bad_metadata_file_requests(metadata_writer, str(source), str(destination)) excinfo.match(r"Metadata output file cannot be in the {} directory".format(match))
def test_catch_bad_metadata_file_requests_metadata_is_source_or_dest( tmpdir, metadata_is_symlink, match_is_symlink, match ): if match == "source": source, metadata_file = build_same_files_and_dirs(tmpdir, metadata_is_symlink, match_is_symlink, True) destination = tmpdir.join("destination") else: source = tmpdir.join("source") destination, metadata_file = build_same_files_and_dirs(tmpdir, metadata_is_symlink, match_is_symlink, True) metadata_writer = MetadataWriter(suppress_output=False)(output_file=str(metadata_file)) with pytest.raises(BadUserArgumentError) as excinfo: aws_encryption_sdk_cli._catch_bad_metadata_file_requests(metadata_writer, str(source), str(destination)) excinfo.match(r"Metadata output file cannot be the input or output")
def test_catch_bad_metadata_file_requests_metadata_metadata_is_stdout_but_output_is_not( ): metadata_writer = MetadataWriter(suppress_output=False)(output_file="-") aws_encryption_sdk_cli._catch_bad_metadata_file_requests( metadata_writer, "not-std-in", "not-std-out")