diff --git a/diceplayer/__main__.py b/diceplayer/__main__.py index 5de9c32..9a3071c 100644 --- a/diceplayer/__main__.py +++ b/diceplayer/__main__.py @@ -50,10 +50,6 @@ def main(): with open(pickle_path) as pickle_file: save = pickle.load(pickle_file) - output_path = Path(args.outfile) - if output_path.exists(): - output_path.rename(str(output_path) + ".backup") - except Exception as err: sys.exit(err) diff --git a/diceplayer/shared/utils/logger.py b/diceplayer/shared/utils/logger.py index 52430d9..2ed8372 100644 --- a/diceplayer/shared/utils/logger.py +++ b/diceplayer/shared/utils/logger.py @@ -1,3 +1,4 @@ +from pathlib import Path import logging @@ -24,7 +25,9 @@ class Logger: self._logger = logging.getLogger(logger_name) def set_logger(self, outfile='run.log', level=logging.INFO): - self.outfile = outfile + self.outfile = Path(outfile) + if self.outfile.exists(): + self.outfile.rename(str(self.outfile) + ".backup") if level is not None: self._logger.setLevel(level) diff --git a/tests/shared/utils/test_logger.py b/tests/shared/utils/test_logger.py index 03d47b5..482341f 100644 --- a/tests/shared/utils/test_logger.py +++ b/tests/shared/utils/test_logger.py @@ -36,10 +36,28 @@ class TestLogger(unittest.TestCase): self.assertIsInstance(logger, Logger) @mock.patch('builtins.open', mock.mock_open()) - def test_set_logger(self): + @mock.patch('diceplayer.shared.utils.logger.Path.exists') + @mock.patch('diceplayer.shared.utils.logger.Path.rename') + def test_set_logger_if_file_exists(self, mock_rename, mock_exists): logger = Logger('test') + + mock_exists.return_value = True logger.set_logger() + self.assertTrue(mock_rename.called) + self.assertIsNotNone(logger._logger) + self.assertEqual(logger._logger.name, 'test') + + @mock.patch('builtins.open', mock.mock_open()) + @mock.patch('diceplayer.shared.utils.logger.Path.exists') + @mock.patch('diceplayer.shared.utils.logger.Path.rename') + def test_set_logger_if_file_not_exists(self, mock_rename, mock_exists): + logger = Logger('test') + + mock_exists.return_value = False + logger.set_logger() + + self.assertFalse(mock_rename.called) self.assertIsNotNone(logger._logger) self.assertEqual(logger._logger.name, 'test')