|
@@ -22,7 +22,8 @@ import pexpect
|
|
import unittest
|
|
import unittest
|
|
import os
|
|
import os
|
|
|
|
|
|
-OLD_DB_PATH = os.path(os.path.dirname(__file__), 'pwman.db.v0.0.8')
|
|
|
|
|
|
+OLD_DB_PATH = os.path.join(os.path.dirname(__file__), 'pwman.v0.0.8.db')
|
|
|
|
+NEW_DB_PATH = os.path.join(os.path.dirname(__file__), 'pwman.v0.0.8-newdb.db')
|
|
|
|
|
|
_db_warn = ("\n*** WARNNING: You are using the old database format"
|
|
_db_warn = ("\n*** WARNNING: You are using the old database format"
|
|
" which is insecure."
|
|
" which is insecure."
|
|
@@ -37,8 +38,22 @@ class Ferrum(unittest.TestCase):
|
|
def test_db_warning(self):
|
|
def test_db_warning(self):
|
|
"when trying to run with old db, we should see warning"
|
|
"when trying to run with old db, we should see warning"
|
|
child = pexpect.spawn('../../scripts/pwman3 -t -d '+OLD_DB_PATH)
|
|
child = pexpect.spawn('../../scripts/pwman3 -t -d '+OLD_DB_PATH)
|
|
|
|
+ self.assertEqual(0, child.expect_exact(_db_warn, timeout=0.5))
|
|
|
|
|
|
-
|
|
|
|
|
|
+ def test_run_convert(self):
|
|
|
|
+ "invoke pwman with -k option to convert the old data"
|
|
|
|
+ child = pexpect.spawn('../../scripts/pwman3 -t -k -d '+OLD_DB_PATH)
|
|
|
|
+ child.expect('[\s|\S]+Please enter your password:', timeout=0.5)
|
|
|
|
+ self.assertEqual(6, child.sendline('12345'))
|
|
|
|
+ rv = child.expect_exact(('\r\npwman successfully converted the old database '
|
|
|
|
+ 'to the new format.\r\nPlease run `pwman3 -d %s` '
|
|
|
|
+ 'to make sure your password and data are still '
|
|
|
|
+ 'correct. If you are convinced that no harm was '
|
|
|
|
+ 'done, update your config file to indicate the '
|
|
|
|
+ 'permanent location to your new database. '
|
|
|
|
+ 'If you found errors, please report a bug in Pwman '
|
|
|
|
+ 'homepage in github. \r\n' % NEW_DB_PATH))
|
|
|
|
+ self.assertEqual(0, rv)
|
|
|
|
|
|
|
|
|
|
def suite():
|
|
def suite():
|
|
@@ -49,5 +64,6 @@ def suite():
|
|
|
|
|
|
if __name__ == '__main__':
|
|
if __name__ == '__main__':
|
|
unittest.TextTestRunner(verbosity=2).run(suite())
|
|
unittest.TextTestRunner(verbosity=2).run(suite())
|
|
|
|
+ os.remove(NEW_DB_PATH)
|
|
|
|
|
|
|
|
|