Quellcode durchsuchen

Add testing for filter and changing database key

oz123 vor 11 Jahren
Ursprung
Commit
33aeee097b
3 geänderte Dateien mit 32 neuen und 10 gelöschten Zeilen
  1. 1 2
      pwman/data/drivers/sqlite.py
  2. 30 8
      pwman/tests/db_tests.py
  3. 1 0
      pwman/ui/cli.py

+ 1 - 2
pwman/data/drivers/sqlite.py

@@ -116,8 +116,7 @@ class SQLiteDatabaseNewForm(Database):
         except sqlite.DatabaseError, e:
             raise DatabaseException("SQLite: %s" % (e))
         except sqlite.InterfaceError, e:
-            import ipdb
-            ipdb.set_trace()  # XXX BREAKPOINT
+            raise e
 
     def parse_node_string(self, string):
         nodestring = string.split("##")

+ 30 - 8
pwman/tests/db_tests.py

@@ -8,34 +8,46 @@ import sys
 class DummyCallback(Callback):
 
     def getsecret(self, question):
-        return str(123) + str(45)
+        return u'12345'
 
     def getnewsecret(self, question):
-        return str(123) + str(45)
+        return u'12345'
 
 
 class DummyCallback2(Callback):
 
     def getinput(self, question):
-        return 'newsecret'
+        return u'newsecret'
 
     def getsecret(self, question):
-        return 'wrong'
+        return u'wrong'
 
     def getnewsecret(self, question):
-        return 'newsecret'
+        return u'newsecret'
 
 
 class DummyCallback3(Callback):
 
     def getinput(self, question):
-        return 'newsecret'
+        return u'newsecret'
 
     def getsecret(self, question):
-        return '12345'
+        return u'12345'
 
     def getnewsecret(self, question):
-        return 'newsecret'
+        return u'newsecret'
+
+class DummyCallback4(Callback):
+
+    def getinput(self, question):
+        return u'newsecret'
+
+    def getsecret(self, question):
+        return u'newsecret'
+
+    def getnewsecret(self, question):
+        return u'newsecret'
+
 
 if 'darwin' in sys.platform:  # pragma: no cover
     from pwman.ui.mac import PwmanCliMacNew as PwmanCliNew
@@ -146,9 +158,13 @@ class DBTests(unittest.TestCase):
                           self.tester.cli._db.changepassword)
 
     def test_db_change_pass(self):
+        "fuck yeah, we change the password and the new dummy works"
         enc = CryptoEngine.get()
         enc._callback = DummyCallback3()
         self.tester.cli._db.changepassword()
+        self.tester.cli.do_forget('')
+        enc._callback = DummyCallback4()
+        self.tester.cli.do_ls('')
 
 
 class CLITests(unittest.TestCase):
@@ -272,6 +288,12 @@ class CLITests(unittest.TestCase):
         self.assertFalse(leet)
         self.assertFalse(s_chars)
 
+    def test_do_tags(self):
+        self.tester.cli.do_filter('bank')
+
+    def test_do_clear(self):
+        self.tester.cli.do_clear('')
+
     def test_do_exit(self):
         self.assertTrue(self.tester.cli.do_exit(''))
 

+ 1 - 0
pwman/ui/cli.py

@@ -64,6 +64,7 @@ class PwmanCliNew(Aliases, BaseCommands):
             enc = CryptoEngine.get()
             enc._callback = callback()
             self._db = db
+            #  this cascades down all the way to setting the database key
             self._db.open()
         except Exception, e:  # pragma: no cover
             self.error(e)