diff --git a/model_signing/serialization/conftest.py b/model_signing/serialization/conftest.py index addc9a6a..9dcf3af9 100644 --- a/model_signing/serialization/conftest.py +++ b/model_signing/serialization/conftest.py @@ -14,6 +14,8 @@ """Test fixtures to share between tests. Not part of the public API.""" +import os +import pathlib import pytest from model_signing.serialization import test_support @@ -102,3 +104,12 @@ def deep_model_folder(tmp_path_factory): file.write_text(f"This is file f{i}.") return model_root + +@pytest.fixture +def symlink_model_file(tmp_path_factory: pytest.TempPathFactory) -> pathlib.Path: + """A model with a symlink to a single file.""" + source_file = tmp_path_factory.mktemp("source") / "file" + source_file.write_bytes(test_support.KNOWN_MODEL_TEXT) + symlink_file = tmp_path_factory.mktemp("symlink") / "file" + os.symlink(source_file.absolute(), symlink_file.absolute()) + return symlink_file diff --git a/model_signing/serialization/test_support.py b/model_signing/serialization/test_support.py index 6d8aefaf..e3f45b04 100644 --- a/model_signing/serialization/test_support.py +++ b/model_signing/serialization/test_support.py @@ -39,6 +39,7 @@ "empty_model_file", "empty_model_folder", "model_folder_with_empty_file", + "symlink_model_file", ] diff --git a/model_signing/serialization/testdata/serialize_by_file/TestDigestSerializer/symlink_model_file b/model_signing/serialization/testdata/serialize_by_file/TestDigestSerializer/symlink_model_file new file mode 100644 index 00000000..2ebc572a --- /dev/null +++ b/model_signing/serialization/testdata/serialize_by_file/TestDigestSerializer/symlink_model_file @@ -0,0 +1 @@ +3aab065c7181a173b5dd9e9d32a9f79923440b413be1e1ffcdba26a7365f719b diff --git a/model_signing/serialization/testdata/serialize_by_file/TestManifestSerializer/symlink_model_file b/model_signing/serialization/testdata/serialize_by_file/TestManifestSerializer/symlink_model_file new file mode 100644 index 00000000..96d0bc82 --- /dev/null +++ b/model_signing/serialization/testdata/serialize_by_file/TestManifestSerializer/symlink_model_file @@ -0,0 +1 @@ +.:3aab065c7181a173b5dd9e9d32a9f79923440b413be1e1ffcdba26a7365f719b diff --git a/model_signing/serialization/testdata/serialize_by_file_shard/TestDigestSerializer/symlink_model_file b/model_signing/serialization/testdata/serialize_by_file_shard/TestDigestSerializer/symlink_model_file new file mode 100644 index 00000000..8ec1d11f --- /dev/null +++ b/model_signing/serialization/testdata/serialize_by_file_shard/TestDigestSerializer/symlink_model_file @@ -0,0 +1 @@ +14aebf2e466ad30ef59ea6fce67de44dc133c673784bd543b45f75b8efc3d821 diff --git a/model_signing/serialization/testdata/serialize_by_file_shard/TestDigestSerializer/symlink_model_file_small_shards b/model_signing/serialization/testdata/serialize_by_file_shard/TestDigestSerializer/symlink_model_file_small_shards new file mode 100644 index 00000000..7b4ad705 --- /dev/null +++ b/model_signing/serialization/testdata/serialize_by_file_shard/TestDigestSerializer/symlink_model_file_small_shards @@ -0,0 +1 @@ +beb3cbbd9d73133e85a102a3cbda2ef1dc2bc61e9323e32e576e4adb0571bf86 diff --git a/model_signing/serialization/testdata/serialize_by_file_shard/TestManifestSerializer/symlink_model_file b/model_signing/serialization/testdata/serialize_by_file_shard/TestManifestSerializer/symlink_model_file new file mode 100644 index 00000000..6ef95249 --- /dev/null +++ b/model_signing/serialization/testdata/serialize_by_file_shard/TestManifestSerializer/symlink_model_file @@ -0,0 +1 @@ +.:0:22:3aab065c7181a173b5dd9e9d32a9f79923440b413be1e1ffcdba26a7365f719b diff --git a/model_signing/serialization/testdata/serialize_by_file_shard/TestManifestSerializer/symlink_model_file_small_shards b/model_signing/serialization/testdata/serialize_by_file_shard/TestManifestSerializer/symlink_model_file_small_shards new file mode 100644 index 00000000..3fdc9b2f --- /dev/null +++ b/model_signing/serialization/testdata/serialize_by_file_shard/TestManifestSerializer/symlink_model_file_small_shards @@ -0,0 +1,3 @@ +.:0:8:a37010c994067764d86540bf479d93b4d0c3bb3955de7b61f951caf2fd0301b0 +.:8:16:bd762002a3528a27fb9a8822f822b949d3c9ab7e860af33039c9aa70ebbbe682 +.:16:22:a791e1e893ea4260c77475725101fb4cc6ad85f6340f21f10b239184e318cd21