コード例 #1
0
ファイル: baseui.py プロジェクト: donnm/pwman3
 def _do_new(self, args):
     node = {}
     node['username'] = self._get_input("Username: "******"Url: ")
     node['notes'] = self._get_input("Notes: ")
     node['tags'] = self._get_tags()
     node = Node(clear_text=True, **node)
     self._db.add_node(node)
     return node
コード例 #2
0
 def test_6_listnodes(self):
     node = Node(clear_text=True,
                 **{
                     'username': u"hatman",
                     'password': u"secret",
                     'url': u"wonderland.com",
                     'notes': u"a really great place",
                     'tags': [u'baz', u'bar']
                 })
     self.db.add_node(node)
     ids = self.db.listnodes()
     self.assertEqual(2, len(ids))
コード例 #3
0
 def do_new(self, arg):
     try:
         username = self.get_username()
         password = self.get_password()
         url = self.get_url()
         notes = self.get_notes()
         node = Node(username, password, url, notes)
         tags = self.get_tags()
         node.set_tags(tags)
         self._db.addnodes([node])
         print "Password ID: %d" % (node.get_id())
     except Exception, e:
         self.error(e)
コード例 #4
0
 def test_3_add_node(self):
     node = Node(clear_text=True,
                 **{
                     'username': "******",
                     'password': "******",
                     'url': "wonderland.com",
                     'notes': "a really great place",
                     'tags': ['foo', 'bar']
                 })
     self.db.add_node(node)
     rv = self.db._cur.execute("select * from node")
     ce = CryptoEngine.get()
     res = rv.fetchone()
     self.assertEqual(ce.decrypt(res[1]), b"alice")
コード例 #5
0
 def test_4_test_tags(self):
     node = Node(clear_text=True,
                 **{
                     'username': u"alice",
                     'password': u"secret",
                     'url': u"wonderland.com",
                     'notes': u"a really great place",
                     'tags': ['foo', 'bar']
                 })
     ce = CryptoEngine.get()
     self.db._get_or_create_tag(node._tags[0])
     self.assertEqual(1, self.db._get_or_create_tag(node._tags[0]))
     rv = self.db._get_or_create_tag(ce.encrypt(b'baz'))
     self.assertEqual(3, rv)
     self.db._con.commit()
コード例 #6
0
 def _create_node(self, row):
     """create a node object with encrypted properties"""
     try:
         n = {
             'clear_text': True,
             'username': row[0],
             'password': row[2],
             'url': row[1],
             'notes': row[3],
             'tags': row[4].split(',')
         }
         node = Node(**n)
     except IndexError as err:
         print('{}\nDid you specify the correct delimiter?'.format(err))
         sys.exit(1)
     return node
コード例 #7
0
    def import_data(self, db, file):
        tree = ET.parse(file)
        root = tree.getroot()
        nodes = root.findall("Node")
        nodesarray = []
        for n in nodes:
            username = n.findtext("username")
            password = n.findtext("password")
            url = n.findtext("url")
            notes = n.findtext("notes")

            node = Node(username, password, url, notes)
            tagnames = n.find("tags").findall("name")
            tags = []
            for t in tagnames:
                tags.append(Tag(t.text))
            node.set_tags(tags)
            nodesarray.append(node)
        db.addnodes(nodesarray)
コード例 #8
0
    def parse_list(self, db, list):
        lists = list.findall("PwList")
        for l in lists:
            name = l.get("name").lower().replace(' ', '')
            self.tagstack.append(name)
            self.parse_list(db, l)
            self.tagstack.pop()
        items = list.findall("PwItem")
        tags = []
        for t in self.tagstack:
            tags.append(Tag(t))

        for i in items:
            username = i.findtext("user")
            password = i.findtext("passwd")
            url = i.findtext("host")
            notes = "%s | %s" % (i.findtext("name"), i.findtext("launch"))
            n = Node(username, password, url, notes)
            n.set_tags(tags)
            self.nodes.append(n)
コード例 #9
0
    def test_5_add_node(self):
        innode = [
            u"TBONE", u"S3K43T", u"example.org", u"some note",
            [u"bartag", u"footag"]
        ]

        kwargs = {
            "username": innode[0],
            "password": innode[1],
            "url": innode[2],
            "notes": innode[3],
            "tags": innode[4]
        }

        node = Node(clear_text=True, **kwargs)
        self.db.add_node(node)
        outnode = self.db.getnodes([1])[0]
        no = outnode[1:5]
        no.append(outnode[5:])
        o = Node.from_encrypted_entries(*no)
        self.assertEqual(list(node), list(o))
コード例 #10
0
 def setUp(self):
     self.node = Node(username=b'foo',
                      password=b's3kr3t',
                      url=b'example.com',
                      notes=b'just a reminder to self',
                      tags=[b'baz', b'baz'])