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)
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)
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)
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__
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)
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)