From c2f7bd6354817d6812efcb5d7edc63be8f1fadb1 Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Thu, 14 Feb 2019 16:58:14 -0800 Subject: [PATCH] backups: Fix failing test case When run on empty directory FileNotFoundError is raised. Include it in the list of expected errors. Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/modules/backups/repository.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/plinth/modules/backups/repository.py b/plinth/modules/backups/repository.py index cdf39dc19..a3c360a76 100644 --- a/plinth/modules/backups/repository.py +++ b/plinth/modules/backups/repository.py @@ -51,9 +51,13 @@ KNOWN_ERRORS = [{ 'message': _('Connection refused'), 'raise_as': BorgError, }, { - 'errors': ['not a valid repository', 'does not exist'], - 'message': _('Repository not found'), - 'raise_as': BorgRepositoryDoesNotExistError, + 'errors': [ + 'not a valid repository', 'does not exist', 'FileNotFoundError' + ], + 'message': + _('Repository not found'), + 'raise_as': + BorgRepositoryDoesNotExistError, }, { 'errors': [('passphrase supplied in BORG_PASSPHRASE or by ' 'BORG_PASSCOMMAND is incorrect')], @@ -143,6 +147,7 @@ class BorgRepository(): def get_download_stream(self, archive_name): """Return an stream of .tar.gz binary data for a backup archive.""" + class BufferedReader(io.BufferedReader): """Improve performance of buffered binary streaming. @@ -156,6 +161,7 @@ class BorgRepository(): binary data. """ + def __next__(self): """Override to call read() instead of readline().""" chunk = self.read(io.DEFAULT_BUFFER_SIZE) @@ -210,9 +216,9 @@ class BorgRepository(): """Look whether the caught error is known and reraise it accordingly""" caught_error = str(err) for known_error in KNOWN_ERRORS: - for error in known_error["errors"]: + for error in known_error['errors']: if error in caught_error: - raise known_error["raise_as"](known_error["message"]) + raise known_error['raise_as'](known_error['message']) raise err