From 66685c281cb7e633b272a1bcfed970304955a38a Mon Sep 17 00:00:00 2001 From: Adal Chiriliuc Date: Thu, 25 Apr 2024 19:25:28 +0300 Subject: [PATCH] add file copy-by-id subcommand --- b2/_internal/console_tool.py | 14 +++++++++++++- test/unit/test_copy.py | 4 ++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/b2/_internal/console_tool.py b/b2/_internal/console_tool.py index 149aae175..985263a9d 100644 --- a/b2/_internal/console_tool.py +++ b/b2/_internal/console_tool.py @@ -1409,7 +1409,7 @@ def _run(self, args): return 0 -class CopyFileById( +class FileCopyByIdBase( HeaderFlagsMixin, DestinationSseMixin, SourceSseMixin, FileRetentionSettingMixin, LegalHoldMixin, Command ): @@ -4918,6 +4918,13 @@ class FileDownload(B2URIFileArgMixin, FileDownloadBase): COMMAND_NAME = 'download' +@File.subcommands_registry.register +class FileCopyById(FileCopyByIdBase): + __doc__ = FileCopyByIdBase.__doc__ + # TODO we can't use 'copy-by-id', gets transformed to 'copy--by--id' + COMMAND_NAME = 'CopyById' + + class FileInfo2(CmdReplacedByMixin, B2URIFileArgMixin, FileInfoBase): __doc__ = FileInfoBase.__doc__ replaced_by_cmd = (File, FileInfo) @@ -4970,6 +4977,11 @@ class DownloadFileByName(CmdReplacedByMixin, B2URIBucketNFilenameArgMixin, FileD replaced_by_cmd = (File, FileDownload) +class CopyFileById(CmdReplacedByMixin, FileCopyByIdBase): + __doc__ = FileCopyByIdBase.__doc__ + replaced_by_cmd = (File, FileCopyById) + + class ConsoleTool: """ Implements the commands available in the B2 command-line tool diff --git a/test/unit/test_copy.py b/test/unit/test_copy.py index 718fd9a18..fac267531 100644 --- a/test/unit/test_copy.py +++ b/test/unit/test_copy.py @@ -19,7 +19,7 @@ EncryptionSetting, ) -from b2._internal.console_tool import CopyFileById +from b2._internal.console_tool import FileCopyById from .test_base import TestBase @@ -29,7 +29,7 @@ def test_determine_source_metadata(self): mock_api = mock.MagicMock() mock_console_tool = mock.MagicMock() mock_console_tool.api = mock_api - copy_file_command = CopyFileById(mock_console_tool) + copy_file_command = FileCopyById(mock_console_tool) result = copy_file_command._determine_source_metadata( 'id',