def test_command_get_empty(self):
     keyring_manager = KeyringManager("", self.bdd_filename,
                                      self.default_arguments + ["--get"])
     self.assertEqual(keyring_manager.command, "get")
     keyring_manager.run()
     bdd = self._get_bdd()
     self.assertEqual(len(bdd), 0)
    def test_instanciate(self):
        KeyringManager("", "", [])
        KeyringManager("", "", ["--recipient=fake_recipient"])
        KeyringManager("", "", ["--pass=fake_master_pass"])
        KeyringManager("", "", ["--clip"])

        tags = ["tag1", "tag2", "tag3"]
        keyring_manager = KeyringManager("", "", tags)
        self.assertEqual(keyring_manager.tags, tags)

        with self.assertRaises(SystemExit) as cm:
            KeyringManager("", "", ["--help"])
        self.assertEqual(cm.exception.code, 0)

        with self.assertRaises(SystemExit) as cm:
            KeyringManager("", "", ["-h"])
        self.assertEqual(cm.exception.code, 0)

        with self.assertRaises(SystemExit) as cm:
            KeyringManager("", "", ["--this_argument_does_not_exists"])
        self.assertEqual(cm.exception.code, 1)

        with self.assertRaises(SystemExit) as cm:
            KeyringManager("", "", ["--select=not_a_number"])
        self.assertEqual(cm.exception.code, 1)
        KeyringManager("", "", ["--select=10"])
    def test_bdd_filename(self):
        # todo: add test for user pref filename override
        fake_filename1 = "fake_filename1"
        fake_filename2 = "fake_filename2"

        keyring_manager = KeyringManager("", fake_filename1, [])
        self.assertEqual(keyring_manager.filename, fake_filename1)

        keyring_manager = KeyringManager("", fake_filename1,
                                         ["--file=" + fake_filename2])
        self.assertEqual(keyring_manager.filename, fake_filename2)
    def test_command_backup(self):
        self.test_command_add_multiple()

        backup_dest = "fake_dest"
        keyring_manager = KeyringManager("", self.bdd_filename, self.default_arguments + ["--backup=" + backup_dest])
        self.assertEqual(keyring_manager.command, "backup")
        self.assertEqual(keyring_manager.hostdest, backup_dest)

        with self.assertRaises(SystemExit) as cm:
            keyring_manager.run()
        self.assertEqual(cm.exception.code, 1)
    def test_command_backup(self):
        self.test_command_add_multiple()

        backup_dest = "fake_dest"
        keyring_manager = KeyringManager(
            "", self.bdd_filename,
            self.default_arguments + ["--backup=" + backup_dest])
        self.assertEqual(keyring_manager.command, "backup")
        self.assertEqual(keyring_manager.hostdest, backup_dest)

        with self.assertRaises(SystemExit) as cm:
            keyring_manager.run()
        self.assertEqual(cm.exception.code, 1)
    def test_command_search(self, mocked_print):
        self.test_command_add_multiple()

        keyring_manager = KeyringManager("", self.bdd_filename, self.default_arguments + ["--search", "tag1"])
        self.assertEqual(keyring_manager.command, "search")
        keyring_manager.run()
        self.assertEqual(mocked_print.call_count, 3)

        KeyringManager("", self.bdd_filename, self.default_arguments + ["--search", "tag2"]).run()
        self.assertEqual(mocked_print.call_count, 5)

        KeyringManager("", self.bdd_filename, self.default_arguments + ["--search", "tag5"]).run()
        self.assertEqual(mocked_print.call_count, 6)
    def test_command_add(self, new_pass="******", tags=["tag1", "tag2", "tag3"]):
        old_bdd = self._get_bdd()

        keyring_manager = KeyringManager("", self.bdd_filename, self.default_arguments + ["--add=" + new_pass] + tags)
        self.assertEqual(keyring_manager.command, "add")
        self.assertEqual(keyring_manager.key, new_pass)
        keyring_manager.run()
        bdd = self._get_bdd()
        self.assertEqual(len(bdd), len(old_bdd) + 1)

        decoded_bdd_entry = []
        for d in bdd[len(old_bdd)]:
            decoded_bdd_entry.append(d.decode('utf8'))
        self.assertEqual(decoded_bdd_entry, tags + [new_pass])
    def test_command_add(self,
                         new_pass="******",
                         tags=["tag1", "tag2", "tag3"]):
        old_bdd = self._get_bdd()

        keyring_manager = KeyringManager(
            "", self.bdd_filename,
            self.default_arguments + ["--add=" + new_pass] + tags)
        self.assertEqual(keyring_manager.command, "add")
        self.assertEqual(keyring_manager.key, new_pass)
        keyring_manager.run()
        bdd = self._get_bdd()
        self.assertEqual(len(bdd), len(old_bdd) + 1)

        decoded_bdd_entry = []
        for d in bdd[len(old_bdd)]:
            decoded_bdd_entry.append(d.decode('utf8'))
        self.assertEqual(decoded_bdd_entry, tags + [new_pass])
    def test_command_get_select_multiple(self):
        self.test_command_add_multiple()
        keyring_manager = KeyringManager("", self.bdd_filename, self.default_arguments + ["--select=1"])
        self.assertEqual(keyring_manager.command, "get")
        self.assertEqual(keyring_manager.keyId, 1)
        keyring_manager.run()

        keyring_manager = KeyringManager("", self.bdd_filename, self.default_arguments + ["--get"])
        self.assertEqual(keyring_manager.command, "get")
        keyring_manager.run()

        keyring_manager = KeyringManager("", self.bdd_filename, self.default_arguments + ["--get", "tag1"]).run()
        keyring_manager = KeyringManager("", self.bdd_filename, self.default_arguments + ["--clip", "--get", "tag2"]).run()
示例#10
0
    def test_command_search(self, mocked_print):
        self.test_command_add_multiple()

        keyring_manager = KeyringManager(
            "", self.bdd_filename,
            self.default_arguments + ["--search", "tag1"])
        self.assertEqual(keyring_manager.command, "search")
        keyring_manager.run()
        self.assertEqual(mocked_print.call_count, 3)

        KeyringManager("", self.bdd_filename,
                       self.default_arguments + ["--search", "tag2"]).run()
        self.assertEqual(mocked_print.call_count, 5)

        KeyringManager("", self.bdd_filename,
                       self.default_arguments + ["--search", "tag5"]).run()
        self.assertEqual(mocked_print.call_count, 6)
示例#11
0
    def test_command_update(self):
        self.test_command_add_multiple()

        new_key = "new_key"
        keyring_manager = KeyringManager(
            "", self.bdd_filename,
            self.default_arguments + ["--update=" + new_key])
        self.assertEqual(keyring_manager.command, "update")
        self.assertEqual(keyring_manager.key, new_key)
        with self.assertRaises(SystemExit) as cm:
            keyring_manager.run()
        self.assertEqual(cm.exception.code, 1)

        old_bdd = self._get_bdd()
        self.assertNotEqual(old_bdd[1][-1].decode('utf8'), new_key)

        keyring_manager = KeyringManager(
            "", self.bdd_filename,
            self.default_arguments + ["--select=1", "--update=" + new_key])
        self.assertEqual(keyring_manager.keyId, 1)
        keyring_manager.run()

        new_bdd = self._get_bdd()
        self.assertEqual(new_bdd[1][-1].decode('utf8'), new_key)
示例#12
0
    def test_command_update(self):
        self.test_command_add_multiple()

        new_key = "new_key"
        keyring_manager = KeyringManager("", self.bdd_filename, self.default_arguments + ["--update=" + new_key])
        self.assertEqual(keyring_manager.command, "update")
        self.assertEqual(keyring_manager.key, new_key)
        with self.assertRaises(SystemExit) as cm:
            keyring_manager.run()
        self.assertEqual(cm.exception.code, 1)

        old_bdd = self._get_bdd()
        self.assertNotEqual(old_bdd[1][-1].decode('utf8'), new_key)

        keyring_manager = KeyringManager("", self.bdd_filename, self.default_arguments + ["--select=1", "--update=" + new_key])
        self.assertEqual(keyring_manager.keyId, 1)
        keyring_manager.run()

        new_bdd = self._get_bdd()
        self.assertEqual(new_bdd[1][-1].decode('utf8'), new_key)
示例#13
0
    def test_command_remove(self, mocked_print):
        self.test_command_add_multiple()

        keyring_manager = KeyringManager("", self.bdd_filename, self.default_arguments + ["--remove"])
        self.assertEqual(keyring_manager.command, "remove")
        with self.assertRaises(SystemExit) as cm:
            keyring_manager.run()
        self.assertEqual(cm.exception.code, 1)

        KeyringManager("", self.bdd_filename, self.default_arguments + ["--search", "tag2"]).run()
        self.assertEqual(mocked_print.call_count, 2)
        keyring_manager = KeyringManager("", self.bdd_filename, self.default_arguments + ["--select=1", "--remove"])
        self.assertEqual(keyring_manager.keyId, 1)
        keyring_manager.run()
        KeyringManager("", self.bdd_filename, self.default_arguments + ["--search", "tag2"]).run()
        self.assertEqual(mocked_print.call_count, 3)
        KeyringManager("", self.bdd_filename, self.default_arguments + ["--search", "tag4"]).run()
        self.assertEqual(mocked_print.call_count, 3)
        KeyringManager("", self.bdd_filename, self.default_arguments + ["--search", "tag3"]).run()
        self.assertEqual(mocked_print.call_count, 4)
示例#14
0
 def _get_bdd(self):
     keyring_manager = KeyringManager("", self.bdd_filename,
                                      self.default_arguments + ["--get"])
     raw_bdd = keyring_manager.load_raw_bdd()
     return keyring_manager.parse_raw(raw_bdd)
示例#15
0
 def _get_bdd(self):
     keyring_manager = KeyringManager("", self.bdd_filename, self.default_arguments + ["--get"])
     raw_bdd = keyring_manager.load_raw_bdd()
     return keyring_manager.parse_raw(raw_bdd)
示例#16
0
 def test_command_get_empty(self):
     keyring_manager = KeyringManager("", self.bdd_filename, self.default_arguments + ["--get"])
     self.assertEqual(keyring_manager.command, "get")
     keyring_manager.run()
     bdd = self._get_bdd()
     self.assertEqual(len(bdd), 0)
示例#17
0
    def test_command_remove(self, mocked_print):
        self.test_command_add_multiple()

        keyring_manager = KeyringManager("", self.bdd_filename,
                                         self.default_arguments + ["--remove"])
        self.assertEqual(keyring_manager.command, "remove")
        with self.assertRaises(SystemExit) as cm:
            keyring_manager.run()
        self.assertEqual(cm.exception.code, 1)

        KeyringManager("", self.bdd_filename,
                       self.default_arguments + ["--search", "tag2"]).run()
        self.assertEqual(mocked_print.call_count, 2)
        keyring_manager = KeyringManager(
            "", self.bdd_filename,
            self.default_arguments + ["--select=1", "--remove"])
        self.assertEqual(keyring_manager.keyId, 1)
        keyring_manager.run()
        KeyringManager("", self.bdd_filename,
                       self.default_arguments + ["--search", "tag2"]).run()
        self.assertEqual(mocked_print.call_count, 3)
        KeyringManager("", self.bdd_filename,
                       self.default_arguments + ["--search", "tag4"]).run()
        self.assertEqual(mocked_print.call_count, 3)
        KeyringManager("", self.bdd_filename,
                       self.default_arguments + ["--search", "tag3"]).run()
        self.assertEqual(mocked_print.call_count, 4)
示例#18
0
    def test_command_get_select_multiple(self):
        self.test_command_add_multiple()
        keyring_manager = KeyringManager(
            "", self.bdd_filename, self.default_arguments + ["--select=1"])
        self.assertEqual(keyring_manager.command, "get")
        self.assertEqual(keyring_manager.keyId, 1)
        keyring_manager.run()

        keyring_manager = KeyringManager("", self.bdd_filename,
                                         self.default_arguments + ["--get"])
        self.assertEqual(keyring_manager.command, "get")
        keyring_manager.run()

        keyring_manager = KeyringManager(
            "", self.bdd_filename,
            self.default_arguments + ["--get", "tag1"]).run()
        keyring_manager = KeyringManager(
            "", self.bdd_filename,
            self.default_arguments + ["--clip", "--get", "tag2"]).run()