diff --git a/great_ai/large_file/large_file/large_file_base.py b/great_ai/large_file/large_file/large_file_base.py index 5d62e15..49c7928 100644 --- a/great_ai/large_file/large_file/large_file_base.py +++ b/great_ai/large_file/large_file/large_file_base.py @@ -239,6 +239,7 @@ class LargeFileBase(ABC): raise FileExistsError(f"Version already exists: {destination}") shutil.move(str(staged), str(destination)) + self._find_instances() self.clean_up() def delete(self) -> None: diff --git a/tests/large_file/test_storage_safety.py b/tests/large_file/test_storage_safety.py index cb45222..5bc5193 100644 --- a/tests/large_file/test_storage_safety.py +++ b/tests/large_file/test_storage_safety.py @@ -108,6 +108,23 @@ def test_evicted_remote_model_is_downloaded_again() -> None: assert downloads == ["model/0", "model/0"] +def test_upload_refreshes_available_versions() -> None: + writer = LargeFileLocal("model", "w") + with writer as file: + file.write("weights") + assert writer.versions_pretty == "0" + assert writer.get().read_text() == "weights" + + +def test_retention_counts_the_new_version() -> None: + for version in range(3): + with LargeFileLocal("model", "w", keep_last_n=1) as file: + file.write(str(version)) + reader = LargeFileLocal("model") + assert reader.versions_pretty == "2" + assert reader.get().read_text() == "2" + + def test_uploading_cached_directory_preserves_source(tmp_path: Path) -> None: source = tmp_path / "source" source.mkdir()