diff --git a/src/borg/archiver/key_cmds.py b/src/borg/archiver/key_cmds.py index fa89d1da9..abb9d1ee2 100644 --- a/src/borg/archiver/key_cmds.py +++ b/src/borg/archiver/key_cmds.py @@ -101,6 +101,8 @@ class KeysMixIn: manager.export_paperkey(args.path) else: try: + if os.path.isdir(args.path): + raise IsADirectoryError if args.qr: manager.export_qr(args.path) else: diff --git a/src/borg/testsuite/archiver/key_cmds.py b/src/borg/testsuite/archiver/key_cmds.py index c866fc3ae..94dadcab0 100644 --- a/src/borg/testsuite/archiver/key_cmds.py +++ b/src/borg/testsuite/archiver/key_cmds.py @@ -163,6 +163,16 @@ class ArchiverTestCase(ArchiverTestCaseBase): self.cmd(f"--repo={self.repository_location}", "key", "export", export_directory, exit_code=EXIT_ERROR) + def test_key_export_qr_directory(self): + export_directory = self.output_path + "/exported" + os.mkdir(export_directory) + + self.cmd(f"--repo={self.repository_location}", "rcreate", RK_ENCRYPTION) + + self.cmd( + f"--repo={self.repository_location}", "key", "export", "--qr-html", export_directory, exit_code=EXIT_ERROR + ) + def test_key_import_errors(self): export_file = self.output_path + "/exported" self.cmd(f"--repo={self.repository_location}", "rcreate", KF_ENCRYPTION)