Пример #1
0
 def test_list_one(self):
     """test list functionality for one password"""
     with patch_args(subparser_name='list', identity='r1', nopassphrase="true"):
         with captured_output() as (out, _):
             pklist.List(cli.Cli())
     output = yaml.safe_load(out.getvalue().replace('\t', ' '))
     self.assertDictEqual(output, self.password_list_1)
Пример #2
0
 def test_recipient_not_in_database(self):
     """test bad recipient functionality"""
     with self.assertRaises(CliArgumentError) as context:
         with patch_args(subparser_name='list', identity='bleh', nopassphrase="true"):
             pklist.List(cli.Cli())
     self.assertEqual(
         context.exception.msg,
         ERROR_MSGS['rep']
     )
Пример #3
0
 def test_list_one(self, subparser_name):
     """test list functionality"""
     ret = False
     with captured_output() as (out, _):
         pklist.List(cli.Cli())
     output = "".join(out.getvalue().strip().split())
     if output == PASSWORD_LIST_1:
         ret = True
     self.assertTrue(ret)
Пример #4
0
 def test_recipient_not_in_database(self, subparser_name):
     """test bad recipient functionality"""
     ret = False
     try:
         pklist.List(cli.Cli())
     except CliArgumentError as error:
         if error.msg == "Error: Your user 'bleh' is not in the recipient database":
             ret = True
     self.assertTrue(ret)
Пример #5
0
    def __init__(self):
        ####################################################################
        """Intialization function for class. Register all subcommands"""
        ####################################################################
        # Hash of registered subparser actions, mapping string to actual subparser
        self.actions = {}
        home = path.expanduser("~")
        defaultrc = None
        for file in [".pkpassrc", ".pkpassrc.yml", ".pkpassrc.yaml"]:
            if path.isfile(path.join(home, file)):
                defaultrc = path.join(home, file)
        if not defaultrc:
            defaultrc = path.join(home, ".pkpassrc")
        self.parser = ArgumentParser(description="Public Key Password Manager")
        self.parser.set_default_subparser = set_default_subparser
        self.parser.add_argument(
            "--config",
            type=str,
            help=
            "Path to a PKPass configuration file.  Defaults to '~/.pkpassrc{,.yml,.yaml}'",
            default=defaultrc,
        )
        self.parser.add_argument("--debug",
                                 action="store_true",
                                 help="Errors are more verbose")
        self.subparsers = self.parser.add_subparsers(help="sub-commands",
                                                     dest="subparser_name")

        card.Card(self)
        clip.Clip(self)
        create.Create(self)
        delete.Delete(self)
        distribute.Distribute(self)
        export.Export(self)
        generate.Generate(self)
        pkimport.Import(self)
        info.Info(self)
        pklist.List(self)
        listrecipients.Listrecipients(self)
        modify.Modify(self)
        recover.Recover(self)
        rename.Rename(self)
        show.Show(self)
        populate.Populate(self)
        update.Update(self)
        verifyinstall.VerifyInstall(self)
Пример #6
0
    def __init__(self, args, recipients_database):
        ####################################################################
        Cmd.__init__(self)
        # Hash of registered subparser actions, mapping string to actual subparser
        self.actions = {}
        self.parser = argparse.ArgumentParser(
            description='Public Key Password Manager')

        home = os.path.expanduser("~")
        self.parser.add_argument(
            '--config',
            type=str,
            help=
            "Path to a PKPass configuration file.  Defaults to '~/.pkpassrc'",
            default=os.path.join(home, '.pkpassrc'))
        self.subparsers = self.parser.add_subparsers(help='sub-commands',
                                                     dest='subparser_name')
        self.recipients_database = recipients_database
        self.parser.error = pkparse_error

        card.Card(self)
        clip.Clip(self)
        create.Create(self)
        delete.Delete(self)
        distribute.Distribute(self)
        export.Export(self)
        generate.Generate(self)
        pkimport.Import(self)
        pklist.List(self)
        listrecipients.Listrecipients(self)
        recover.Recover(self)
        rename.Rename(self)
        show.Show(self)
        update.Update(self)

        # Hold onto args passed on the command line
        self.pre_args = args
        # manually remove interpreter from command line so that argparse doesn't try to use it
        sys.argv.remove('interpreter')
        # change our cwd so users can tab complete
        self._change_pwstore()

        # We basically need to grab the first argument and ditch it
        self.parsedargs = {}
Пример #7
0
    def __init__(self):
        """ Intialization function for class. Register all subcommands   """
        ####################################################################
        # Hash of registered subparser actions, mapping string to actual subparser
        self.actions = {}
        home = os.path.expanduser("~")
        self.parser = argparse.ArgumentParser(
            description='Public Key Password Manager')
        self.parser.set_default_subparser = util.set_default_subparser
        self.parser.add_argument(
            '--config',
            type=str,
            help=
            "Path to a PKPass configuration file.  Defaults to '~/.pkpassrc'",
            default=os.path.join(home, '.pkpassrc'))
        self.parser.add_argument('--version',
                                 action='store_true',
                                 help='Show the version of PkPass and exit')
        self.subparsers = self.parser.add_subparsers(help='sub-commands',
                                                     dest='subparser_name')

        card.Card(self)
        clip.Clip(self)
        create.Create(self)
        delete.Delete(self)
        distribute.Distribute(self)
        export.Export(self)
        generate.Generate(self)
        pkimport.Import(self)
        interpreter.Interpreter(self)
        pklist.List(self)
        listrecipients.Listrecipients(self)
        recover.Recover(self)
        rename.Rename(self)
        show.Show(self)
        update.Update(self)

        self.parser.set_default_subparser(self.parser, name='interpreter')
        self.parsedargs = self.parser.parse_args()
        if 'version' in self.parsedargs and self.parsedargs.version:
            print(util.show_version())
        else:
            self.actions[self.parsedargs.subparser_name].run(self.parsedargs)
Пример #8
0
    def __init__(self):
        """ Intialization function for class. Register all subcommands   """
        ####################################################################
        # Hash of registered subparser actions, mapping string to actual subparser
        self.actions = {}
        home = path.expanduser("~")
        self.parser = ArgumentParser(description='Public Key Password Manager')
        self.parser.set_default_subparser = util.set_default_subparser
        self.parser.add_argument(
            '--config',
            type=str,
            help=
            "Path to a PKPass configuration file.  Defaults to '~/.pkpassrc'",
            default=path.join(home, '.pkpassrc'))
        self.parser.add_argument('--debug',
                                 action='store_true',
                                 help="Errors are more verbose")
        self.subparsers = self.parser.add_subparsers(help='sub-commands',
                                                     dest='subparser_name')

        card.Card(self)
        clip.Clip(self)
        create.Create(self)
        delete.Delete(self)
        distribute.Distribute(self)
        export.Export(self)
        generate.Generate(self)
        pkimport.Import(self)
        info.Info(self)
        pklist.List(self)
        listrecipients.Listrecipients(self)
        modify.Modify(self)
        recover.Recover(self)
        rename.Rename(self)
        show.Show(self)
        update.Update(self)
        verifyinstall.VerifyInstall(self)