feat: complete transfer and eviction execution
This commit is contained in:
@@ -9,6 +9,7 @@ from uuid import uuid4
|
||||
from archive_clients.state import ClientStore
|
||||
from archive_clients.transfer import (
|
||||
FileMaterializer,
|
||||
TransferIntegrityError,
|
||||
canonical_message_json,
|
||||
load_published_transfer,
|
||||
materialize_transfer,
|
||||
@@ -212,6 +213,22 @@ class TransferHappyPathTests(unittest.TestCase):
|
||||
self.assertEqual(first, second)
|
||||
self.assertEqual(first, canonical_message_json(manifest))
|
||||
|
||||
def test_manifest_rejects_case_colliding_target_paths(self):
|
||||
manifest = self._manifest()
|
||||
manifest.files[1].target_canonical_path = "album/ONE.bin"
|
||||
with self.assertRaisesRegex(
|
||||
TransferIntegrityError, "case-colliding target"
|
||||
):
|
||||
stage_transfer(
|
||||
manifest,
|
||||
source_root=self.source,
|
||||
sync_root=self.sync,
|
||||
store=self.store,
|
||||
artifact_sources={
|
||||
"metainfo/source.torrent": self.metainfo
|
||||
},
|
||||
)
|
||||
|
||||
def _manifest(self, job_id=None):
|
||||
manifest = transfer_pb2.TransferManifest(
|
||||
manifest_version=1,
|
||||
|
||||
Reference in New Issue
Block a user