From 4369deda58d19c6fb678d1cb60c81d9314307bfd Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Tue, 1 Jul 2025 17:51:45 -0400 Subject: [PATCH] Add tests for checksum and backup handlers --- src/tests/test_manager_checksum_backup.py | 58 +++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/tests/test_manager_checksum_backup.py diff --git a/src/tests/test_manager_checksum_backup.py b/src/tests/test_manager_checksum_backup.py new file mode 100644 index 0000000..c367e34 --- /dev/null +++ b/src/tests/test_manager_checksum_backup.py @@ -0,0 +1,58 @@ +import sys +from pathlib import Path + +sys.path.append(str(Path(__file__).resolve().parents[1])) + +from password_manager.manager import PasswordManager + + +class FakeBackupManager: + def __init__(self, calls): + self.calls = calls + + def create_backup(self): + self.calls["create"] += 1 + + def restore_latest_backup(self): + self.calls["restore"] += 1 + + +def _make_pm(): + pm = PasswordManager.__new__(PasswordManager) + return pm + + +def test_handle_verify_checksum_success(monkeypatch, tmp_path, capsys): + pm = _make_pm() + chk_file = tmp_path / "chk.txt" + chk_file.write_text("abc") + monkeypatch.setattr("password_manager.manager.SCRIPT_CHECKSUM_FILE", chk_file) + monkeypatch.setattr("password_manager.manager.calculate_checksum", lambda _: "abc") + pm.handle_verify_checksum() + out = capsys.readouterr().out + assert "Checksum verification passed." in out + + +def test_handle_verify_checksum_failure(monkeypatch, tmp_path, capsys): + pm = _make_pm() + chk_file = tmp_path / "chk.txt" + chk_file.write_text("xyz") + monkeypatch.setattr("password_manager.manager.SCRIPT_CHECKSUM_FILE", chk_file) + monkeypatch.setattr("password_manager.manager.calculate_checksum", lambda _: "abc") + pm.handle_verify_checksum() + out = capsys.readouterr().out + assert "Checksum verification failed" in out + + +def test_backup_and_restore_database(monkeypatch, capsys): + pm = _make_pm() + calls = {"create": 0, "restore": 0} + pm.backup_manager = FakeBackupManager(calls) + pm.backup_database() + out1 = capsys.readouterr().out + pm.restore_database() + out2 = capsys.readouterr().out + assert calls["create"] == 1 + assert calls["restore"] == 1 + assert "Backup created successfully." in out1 + assert "Database restored from the latest backup successfully." in out2