Oz N Tiram 8 rokov pred
rodič
commit
823a006e54

+ 1 - 1
pwman/exchange/importer.py

@@ -52,7 +52,7 @@ class CSVImporter(BaseImporter):
         try:
             fh, delim = open(self.args.file_delim[0]), self.args.file_delim[1]
             csv_f = csv.reader(fh, delimiter=delim)
-        except IOError:
+        except FileNotFoundError:
             fh, delim = open(self.args.file_delim[1]), self.args.file_delim[0]
             csv_f = csv.reader(fh, delimiter=delim)
 

+ 7 - 3
pwman/util/crypto_engine.py

@@ -159,9 +159,11 @@ class CryptoEngine(object):  # pagma: no cover
         salt = self._salt
         tries = 0
         while tries < 5:
-            password = self._getsecret("Please type in your master password")
-            if self.authenticate(password):
-                return password, salt
+            passwd = self._getsecret("Please type in your master password")
+            if not isinstance(passwd, bytes):
+                passwd = passwd.encode()
+            if self.authenticate(passwd):
+                return passwd, salt
 
             print("You entered a wrong password...")
             tries += 1
@@ -237,6 +239,8 @@ class CryptoEngine(object):  # pagma: no cover
         """
         salt = base64.b64encode(os.urandom(32))
         passwd = self._getsecret("Please type in the master password")
+        if not isinstance(passwd, bytes):
+            passwd = passwd.encode()
         key = get_digest(passwd, salt)
         hpk = salt+'$6$'.encode('utf8')+binascii.hexlify(key)
         self._digest = key

+ 5 - 7
tests/test_importer.py

@@ -57,12 +57,12 @@ class TestImporter(unittest.TestCase):
         self.importer = CSVImporter(args,
                                     config, db)
 
-    def test_read_file(self):
+    def test_1_read_file(self):
         lines = self.importer._read_file()
         self.assertNotIn(["Username", "URL", "Password", "Notes", " Tags"],
                          lines)
 
-    def test_create_node(self):
+    def test_2_create_node(self):
         # create a node , should be encrypted, but not yet inserted to db
         n = "alice;wonderland.com;secert;scratch;foo,bar".split(";")
         node = self.importer._create_node(n)
@@ -70,14 +70,14 @@ class TestImporter(unittest.TestCase):
         self.assertEqual(ce.decrypt(node._username).decode(), u'alice')
         self.assertEqual([b'foo', b'bar'], [t for t in node.tags])
 
-    def test_insert_node(self):
+    def test_3_insert_node(self):
+        self.importer._open_db()
         n = "alice;wonderland.com;secert;scratch;foo,bar".split(";")
         node = self.importer._create_node(n)
-        self.importer._open_db()
         # do the actual insert of the node to the databse
         self.importer._insert_node(node)
 
-    def test_runner(self):
+    def test_4_runner(self):
         # test the whole procees:
         """
           open csv
@@ -99,8 +99,6 @@ class TestImporter(unittest.TestCase):
         importer = Importer((args, '', db))
         importer.importer.run(callback=DummyCallback)
 
-    def tearDown(self):
-        pass
 
 if __name__ == '__main__':