Quellcode durchsuchen

Improve do_newn

oz123 vor 10 Jahren
Ursprung
Commit
50393ce2d0
2 geänderte Dateien mit 21 neuen und 10 gelöschten Zeilen
  1. 4 2
      pwman/tests/test_base_ui.py
  2. 17 8
      pwman/ui/baseui.py

+ 4 - 2
pwman/tests/test_base_ui.py

@@ -48,9 +48,11 @@ class TestBaseUI(unittest.TestCase):
         self.assertListEqual(['foo', 'bar', 'baz'], tags)
         sys.stdin = sys.__stdin__
 
+    def test_do_newn(self):
+        sys.stdin = StringIO("foo\nbar\nbaz\n")
+        self.tester.cli.do_newn('')
+
 
-    #def test_do_newn(self):
-    #    self.tester.sys
 if __name__ == '__main__':
 
     ce = CryptoEngine.get()

+ 17 - 8
pwman/ui/baseui.py

@@ -113,16 +113,25 @@ class BaseCommands(HelpUI):
     def do_filter(self, args):
         pass
 
+    def _get_input(self, prompt):
+        print(prompt, end="")
+        sys.stdout.flush()
+        return sys.stdin.readline()
+
+    def _get_secret(self):
+        # TODO: enable old functionallity
+        if sys.stdin.isatty():
+            p = getpass.getpass()
+        else:
+            p = sys.stdin.readline().rstrip()
+        return p
+
     def do_newn(self, args):
         node = {}
-        node['username'] = self.get_username()
-        args = {}
-        node['password'] = self.get_password(argsgiven=1, **args)
-        node['url'] = self.get_url()
-        node['notes'] = self.get_notes()
-        # TODO: fix get_tags
-        import ipdb; ipdb.set_trace()
+        node['username'] = self._get_input("Username: ")
+        node['password'] = self._get_secret()
+        node['url'] = self._get_input("Url: ")
+        node['notes'] = self._get_input("Notes: ")
         node['tags'] = self._get_tags()
-
         node = Node(clear_text=True, **node)
         self._db.add_node(node)