Exemplo n.º 1
0
 def do_edit(self, args, menu=None):
     ids = self._get_ids(args)
     for i in ids:
         i = int(i)
         node = self._db.getnodes([i])
         if not node:
             print("Node not found ...")
             return
         node = node[0]
         node = node[1:5] + [node[5:]]
         node = Node.from_encrypted_entries(*node)
         if not menu:
             menu = CMDLoop(self.config)
             print("Editing node %d." % (i))
             menu.add(CliMenuItem("Username", node.username))
             menu.add(CliMenuItem("Password",  node.password))
             menu.add(CliMenuItem("Url", node.url))
             menunotes = CliMenuItem("Notes", node.notes)
             menu.add(menunotes)
             menu.add(CliMenuItem("Tags", ','.join(map(lambda x: x.decode(), node.tags))))  # noqa
         menu.run(node)
         self._db.editnode(i, **node.to_encdict())
         # when done with node erase it
         zerome(node._password)
Exemplo n.º 2
0
    def do_edit(self, arg, menu=None):
        ids = self.get_ids(arg)
        for i in ids:
            try:
                i = int(i)
                node = self._db.getnodes([i])[0]
                if not menu:
                    menu = CMDLoop()
                    print ("Editing node %d." % (i))

                    menu.add(CliMenuItem("Username", self.get_username,
                                         node.username,
                                         node.username))
                    menu.add(CliMenuItem("Password", self.get_password,
                                         node.password,
                                         node.password))
                    menu.add(CliMenuItem("Url", self.get_url,
                                         node.url,
                                         node.url))
                    menunotes = CliMenuItem("Notes", self.get_notes,
                                            node.notes,
                                            node.notes)
                    menu.add(menunotes)
                    menu.add(CliMenuItem("Tags", self.get_tags,
                                         node.tags,
                                         node.tags))
                menu.run(node)
                self._db.editnode(i, node)
                # when done with node erase it
                zerome(node._password)
            except Exception as e:
                self.error(e)
Exemplo n.º 3
0
    def do_edit(self, args, menu=None):
        ids = self._get_ids(args)
        for i in ids:
            i = int(i)
            node = self._db.getnodes([i])
            if not node:
                print("Node not found ...")
                return
            node = node[0]
            node = node[1:5] + [node[5:]]
            node = Node.from_encrypted_entries(*node)
            if not menu:
                menu = CMDLoop(self.config)
                print ("Editing node %d." % (i))

                menu.add(CliMenuItem("Username", node.username))
                menu.add(CliMenuItem("Password",  node.password))
                menu.add(CliMenuItem("Url", node.url))
                menunotes = CliMenuItem("Notes", node.notes)
                menu.add(menunotes)
                tgetter = lambda: ', '.join(t for t in node.tags)
                menu.add(CliMenuItem("Tags", tgetter()))
            menu.run(node)
            self._db.editnode(i, **node.to_encdict())
            # when done with node erase it
            zerome(node._password)
Exemplo n.º 4
0
    def test_edit(self):
        node = self.tester.cli._db.getnodes([2])[0]
        menu = CMDLoop()
        menu.add(CliMenuItem("Username", self.tester.cli.get_username,
                             node.username,
                             node.username))
        menu.add(CliMenuItem("Password", self.tester.cli.get_password,
                             node.password,
                             node.password))
        menu.add(CliMenuItem("Url", self.tester.cli.get_url,
                             node.url,
                             node.url))
        menunotes = CliMenuItem("Notes",
                                self.tester.cli.get_notes(reader=lambda:
                                                          u'bla bla'),
                                node.notes,
                                node.notes)
        menu.add(menunotes)
        menu.add(CliMenuItem("Tags", self.tester.cli.get_tags,
                             node.tags,
                             node.tags))

        dummy_stdin = StringIO.StringIO('4\n\nX')
        self.assertTrue(len(dummy_stdin.readlines()))
        dummy_stdin.seek(0)
        sys.stdin = dummy_stdin
        menu.run(node)
        self.tester.cli._db.editnode(2, node)
        sys.stdin = sys.__stdin__
Exemplo n.º 5
0
    def test_edit(self):
        node = self.tester.cli._db.getnodes([2])[0]
        menu = CMDLoop()
        menu.add(
            CliMenuItem("Username", self.tester.cli.get_username,
                        node.username, node.username))
        menu.add(
            CliMenuItem("Password", self.tester.cli.get_password,
                        node.password, node.password))
        menu.add(
            CliMenuItem("Url", self.tester.cli.get_url, node.url, node.url))
        menunotes = CliMenuItem(
            "Notes", self.tester.cli.get_notes(reader=lambda: u'bla bla'),
            node.notes, node.notes)
        menu.add(menunotes)
        menu.add(
            CliMenuItem("Tags", self.tester.cli.get_tags, node.tags,
                        node.tags))

        dummy_stdin = StringIO('4\n\nX')

        class dummy_stdin(object):
            def __init__(self):
                self.idx = -1
                self.ans = ['4', 'some f*****g notes', 'X']

            def __call__(self, msg):
                self.idx += 1
                return self.ans[self.idx]

        dstin = dummy_stdin()
        menu.run(node, reader=dstin)
        self.tester.cli._db.editnode(2, node)
Exemplo n.º 6
0
    def test_edit(self):
        node = self.tester.cli._db.getnodes([2])[0]
        menu = CMDLoop()
        menu.add(CliMenuItem("Username", self.tester.cli.get_username,
                             node.username,
                             node.username))
        menu.add(CliMenuItem("Password", self.tester.cli.get_password,
                             node.password,
                             node.password))
        menu.add(CliMenuItem("Url", self.tester.cli.get_url,
                             node.url,
                             node.url))
        menunotes = CliMenuItem("Notes",
                                self.tester.cli.get_notes(reader=lambda:
                                                          u'bla bla'),
                                node.notes,
                                node.notes)
        menu.add(menunotes)
        menu.add(CliMenuItem("Tags", self.tester.cli.get_tags,
                             node.tags,
                             node.tags))

        dummy_stdin = StringIO('4\n\nX')

        class dummy_stdin(object):

            def __init__(self):
                self.idx = -1
                self.ans = ['4', 'some f*****g notes', 'X']

            def __call__(self, msg):
                self.idx += 1
                return self.ans[self.idx]

        dstin = dummy_stdin()
        menu.run(node, reader=dstin)
        self.tester.cli._db.editnode(2, node)