Bladeren bron

properly simulate user input

and of course, add tests!
oz123 11 jaren geleden
bovenliggende
commit
35c4afd48f
3 gewijzigde bestanden met toevoegingen van 6 en 5 verwijderingen
  1. 3 2
      pwman/tests/db_tests.py
  2. 2 2
      pwman/ui/cli.py
  3. 1 1
      pwman/ui/tools.py

+ 3 - 2
pwman/tests/db_tests.py

@@ -114,8 +114,9 @@ class DBTests(unittest.TestCase):
         got_tags = self.tester.cli._tags(enc)
         self.assertEqual(2, len(got_tags))
 
-    #def tearDown(self):
-    #    self.tester.clean()
+    def test_input(self):
+        name = self.tester.cli.get_username(reader=lambda: 'alice')
+        self.assertEqual(name, 'alice')
 
 
 class CLITests(unittest.TestCase):

+ 2 - 2
pwman/ui/cli.py

@@ -100,8 +100,8 @@ class PwmanCliOld(cmd.Cmd, HelpUI, BaseUI):
     def get_filesystem_path(self, default=""):
         return tools.getinput("Enter filename: ", default)
 
-    def get_username(self, default=""):
-        return tools.getinput("Username: ", default)
+    def get_username(self, default="", reader=raw_input):
+        return tools.getinput("Username: ", default, reader)
 
     def get_password(self, argsgiven, numerics=False, leetify=False,
                      symbols=False, special_signs=False):

+ 1 - 1
pwman/ui/tools.py

@@ -184,7 +184,7 @@ def getinput(question, default="", reader=raw_input,
             readline.set_startup_hook()
             return x
     else:
-        return reader
+        return reader()
 
 
 def getyesno(question, defaultyes=False, width=_defaultwidth):