diff --git a/CHANGELOG.md b/CHANGELOG.md index ffce14e87..a2419ffdf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Removed * Remove `Bucket.copy_file` and `Bucket.start_large_file` +* Remove deprecated `SyncReport` methods ## [1.7.0] - 2021-04-22 diff --git a/b2sdk/sync/report.py b/b2sdk/sync/report.py index 68eebec80..dbd291031 100644 --- a/b2sdk/sync/report.py +++ b/b2sdk/sync/report.py @@ -251,30 +251,6 @@ def local_permission_error(self, path): def symlink_skipped(self, path): pass - @property - def local_file_count(self): - # TODO: Deprecated. Should be removed in v2 - return self.total_count - - @local_file_count.setter - def local_file_count(self, value): - # TODO: Deprecated. Should be removed in v2 - self.total_count = value - - @property - def local_done(self): - # TODO: Deprecated. Should be removed in v2 - return self.total_done - - @local_done.setter - def local_done(self, value): - # TODO: Deprecated. Should be removed in v2 - self.total_done = value - - # TODO: Deprecated. Should be removed in v2 - update_local = update_total - end_local = end_total - class SyncFileReporter(AbstractProgressListener): """ diff --git a/b2sdk/v1/__init__.py b/b2sdk/v1/__init__.py index 2ef73a731..2a758efcc 100644 --- a/b2sdk/v1/__init__.py +++ b/b2sdk/v1/__init__.py @@ -17,6 +17,6 @@ from b2sdk.v1.cache import AbstractCache from b2sdk.v1.sync import ( ScanPoliciesManager, DEFAULT_SCAN_MANAGER, zip_folders, Synchronizer, AbstractFolder, - LocalFolder, B2Folder, parse_sync_folder + LocalFolder, B2Folder, parse_sync_folder, SyncReport ) from b2sdk.v1.api import B2Api diff --git a/b2sdk/v1/sync/__init__.py b/b2sdk/v1/sync/__init__.py index 03db9fed0..11dfb6319 100644 --- a/b2sdk/v1/sync/__init__.py +++ b/b2sdk/v1/sync/__init__.py @@ -10,5 +10,6 @@ from .folder import * from .folder_parser import * +from .report import * from .scan_policies import * from .sync import * diff --git a/b2sdk/v1/sync/report.py b/b2sdk/v1/sync/report.py new file mode 100644 index 000000000..2ef62856e --- /dev/null +++ b/b2sdk/v1/sync/report.py @@ -0,0 +1,33 @@ +###################################################################### +# +# File: b2sdk/v1/sync/report.py +# +# Copyright 2021 Backblaze Inc. All Rights Reserved. +# +# License https://www.backblaze.com/using_b2_code.html +# +###################################################################### + +from b2sdk import _v2 as v2 + + +# override to retain legacy methods +class SyncReport(v2.SyncReport): + @property + def local_file_count(self): + return self.total_count + + @local_file_count.setter + def local_file_count(self, value): + self.total_count = value + + @property + def local_done(self): + return self.total_done + + @local_done.setter + def local_done(self, value): + self.total_done = value + + update_local = v2.SyncReport.update_total + end_local = v2.SyncReport.end_total diff --git a/test/unit/sync/test_sync_report.py b/test/unit/sync/test_sync_report.py new file mode 100644 index 000000000..b0be43ee5 --- /dev/null +++ b/test/unit/sync/test_sync_report.py @@ -0,0 +1,54 @@ +###################################################################### +# +# File: test/unit/sync/test_sync_report.py +# +# Copyright 2019 Backblaze Inc. All Rights Reserved. +# +# License https://www.backblaze.com/using_b2_code.html +# +###################################################################### + +from unittest.mock import MagicMock + +import pytest + +from apiver_deps import SyncReport + + +class TestSyncReport: + def test_bad_terminal(self): + stdout = MagicMock() + stdout.write = MagicMock( + side_effect=[ + UnicodeEncodeError('codec', u'foo', 100, 105, 'artificial UnicodeEncodeError') + ] + list(range(25)) + ) + sync_report = SyncReport(stdout, False) + sync_report.print_completion('transferred: 123.txt') + + @pytest.mark.apiver(to_ver=1) + def test_legacy_methods(self): + stdout = MagicMock() + sync_report = SyncReport(stdout, False) + + assert not sync_report.total_done + assert not sync_report.local_done + assert 0 == sync_report.total_count + assert 0 == sync_report.local_file_count + + sync_report.local_done = True + assert sync_report.local_done + assert sync_report.total_done + + sync_report.local_file_count = 8 + assert 8 == sync_report.local_file_count + assert 8 == sync_report.total_count + + sync_report.update_local(7) + assert 15 == sync_report.total_count + assert 15 == sync_report.local_file_count + + sync_report = SyncReport(stdout, False) + assert not sync_report.total_done + sync_report.end_local() + assert sync_report.total_done diff --git a/test/unit/v0/test_sync_report.py b/test/unit/v0/test_sync_report.py deleted file mode 100644 index b4198ff62..000000000 --- a/test/unit/v0/test_sync_report.py +++ /dev/null @@ -1,27 +0,0 @@ -###################################################################### -# -# File: test/unit/v0/test_sync_report.py -# -# Copyright 2019 Backblaze Inc. All Rights Reserved. -# -# License https://www.backblaze.com/using_b2_code.html -# -###################################################################### - -from unittest.mock import MagicMock - -from ..test_base import TestBase - -from .deps import SyncReport - - -class TestSyncReport(TestBase): - def test_bad_terminal(self): - stdout = MagicMock() - stdout.write = MagicMock( - side_effect=[ - UnicodeEncodeError('codec', u'foo', 100, 105, 'artificial UnicodeEncodeError') - ] + list(range(25)) - ) - sync_report = SyncReport(stdout, False) - sync_report.print_completion('transferred: 123.txt') diff --git a/test/unit/v1/test_sync_report.py b/test/unit/v1/test_sync_report.py deleted file mode 100644 index 1cbc1ee60..000000000 --- a/test/unit/v1/test_sync_report.py +++ /dev/null @@ -1,27 +0,0 @@ -###################################################################### -# -# File: test/unit/v1/test_sync_report.py -# -# Copyright 2019 Backblaze Inc. All Rights Reserved. -# -# License https://www.backblaze.com/using_b2_code.html -# -###################################################################### - -from unittest.mock import MagicMock - -from ..test_base import TestBase - -from .deps import SyncReport - - -class TestSyncReport(TestBase): - def test_bad_terminal(self): - stdout = MagicMock() - stdout.write = MagicMock( - side_effect=[ - UnicodeEncodeError('codec', u'foo', 100, 105, 'artificial UnicodeEncodeError') - ] + list(range(25)) - ) - sync_report = SyncReport(stdout, False) - sync_report.print_completion('transferred: 123.txt')