123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- from pwman_tstlib import *
- initTest(__file__)
- import pathlib
- from libpwman.database import *
- class Test_Database_v1(TestCase):
- """Version 1 database format.
- """
- def test_read_contents(self):
- db = PWManDatabase(filename=pathlib.Path("tests", "test_database_v1.db"),
- passphrase="test")
- self.assertEqual(db.getCategoryNames(),
- sorted([ "123",
- "test2",
- "testcat1" ]))
- self.assertEqual(db.getEntryTitles("123"),
- sorted([ "4711",
- "456" ]))
- self.assertEqual(db.getEntryTitles("test2"),
- sorted([ "test2" ]))
- self.assertEqual(db.getEntryTitles("testcat1"),
- sorted([ "testtitle1",
- "testtitle2",
- "test title3",
- "test-title3",
- "test title4",
- "test title 5",
- "test title 6" ]))
- entry = db.getEntry("testcat1", "testtitle1")
- self.assertEqual(entry.user, "uuuuuuuuu")
- self.assertEqual(entry.pw, "pppppp")
- entryBulk = db.getEntryBulk(entry)
- self.assertEqual(entryBulk.data, "bbbbbbbb")
- entryAttr = db.getEntryAttr(entry, "AAAA")
- self.assertEqual(entryAttr.data, "BBBB")
- entryAttr = db.getEntryAttr(entry, "CCCC")
- self.assertEqual(entryAttr.data, "DDDDDDD")
- entryTotp = db.getEntryTotp(entry)
- self.assertEqual(entryTotp.key, "MZXW63YK")
- self.assertEqual(entryTotp.digits, 6)
- self.assertEqual(entryTotp.hmacHash, "SHA1")
- entry = db.getEntry("testcat1", "testtitle2")
- self.assertEqual(entry.user, "user")
- self.assertEqual(entry.pw, "pw")
- entryBulk = db.getEntryBulk(entry)
- self.assertIsNone(entryBulk)
- entryTotp = db.getEntryTotp(entry)
- self.assertEqual(entryTotp.key, "MJQXE4QK")
- self.assertEqual(entryTotp.digits, 8)
- self.assertEqual(entryTotp.hmacHash, "SHA256")
- entry = db.getEntry("testcat1", "test-title3")
- self.assertEqual(entry.user, "aa bb")
- self.assertEqual(entry.pw, "cc dd")
- entryBulk = db.getEntryBulk(entry)
- self.assertIsNone(entryBulk)
- entry = db.getEntry("testcat1", "test title3")
- self.assertEqual(entry.user, "xx yy")
- self.assertEqual(entry.pw, "oo pp")
- entryBulk = db.getEntryBulk(entry)
- self.assertIsNone(entryBulk)
- entry = db.getEntry("testcat1", "test title4")
- self.assertEqual(entry.user, "4")
- self.assertEqual(entry.pw, "44")
- entryBulk = db.getEntryBulk(entry)
- self.assertIsNone(entryBulk)
- entry = db.getEntry("testcat1", "test title 5")
- self.assertEqual(entry.user, "5")
- self.assertEqual(entry.pw, "55")
- entryBulk = db.getEntryBulk(entry)
- self.assertIsNone(entryBulk)
- entry = db.getEntry("testcat1", "test title 6")
- self.assertEqual(entry.user, "6")
- self.assertEqual(entry.pw, "66")
- entryBulk = db.getEntryBulk(entry)
- self.assertIsNone(entryBulk)
- entry = db.getEntry("123", "4711")
- self.assertEqual(entry.user, "UUU")
- self.assertEqual(entry.pw, "password")
- entryBulk = db.getEntryBulk(entry)
- self.assertIsNone(entryBulk)
- entryAttr = db.getEntryAttr(entry, "git")
- self.assertEqual(entryAttr.data, "https://git.example.com")
- entryAttr = db.getEntryAttr(entry, "www")
- self.assertEqual(entryAttr.data, "https://www.example.com")
- entry = db.getEntry("123", "456")
- self.assertEqual(entry.user, "789")
- self.assertEqual(entry.pw, "")
- entryBulk = db.getEntryBulk(entry)
- self.assertIsNone(entryBulk)
- entry = db.getEntry("test2", "test2")
- self.assertEqual(entry.user, "TEST!")
- self.assertEqual(entry.pw, "TEST!!")
- entryBulk = db.getEntryBulk(entry)
- self.assertEqual(entryBulk.data, "TEST!!!")
- def test_legacy_pbkdf2(self):
- # Test legacy PBKDF2 read support.
- # Just check if we can open and decrypt it successfully.
- db = PWManDatabase(filename=pathlib.Path("tests", "test_database_v1_pbkdf2.db"),
- passphrase="test")
- self.assertEqual(db.getCategoryNames(),
- sorted([ "123", "test2", "testcat1" ]))
|