|
@@ -18,22 +18,35 @@
|
|
|
# ============================================================================
|
|
|
import os
|
|
|
import unittest
|
|
|
-from pwman.util.crypto_engine import CryptoEngine
|
|
|
-from .test_crypto_engine import give_key, DummyCallback
|
|
|
-from pwman.data.database import __DB_FORMAT__
|
|
|
-from .test_tools import (SetupTester)
|
|
|
-from pwman.data import factory
|
|
|
-from pwman.ui import get_ui_platform
|
|
|
try:
|
|
|
from StringIO import StringIO
|
|
|
except ImportError:
|
|
|
from io import StringIO
|
|
|
|
|
|
import sys
|
|
|
+from pwman.util.crypto_engine import CryptoEngine
|
|
|
+from .test_crypto_engine import give_key, DummyCallback
|
|
|
+from pwman.data.database import __DB_FORMAT__
|
|
|
+from .test_tools import (SetupTester)
|
|
|
+from pwman.data import factory
|
|
|
+from pwman.data.nodes import Node
|
|
|
+from pwman.ui import get_ui_platform
|
|
|
+from pwman.ui.tools import CMDLoop
|
|
|
|
|
|
testdb = os.path.join(os.path.dirname(__file__), "test-baseui.pwman.db")
|
|
|
|
|
|
|
|
|
+class dummy_stdin(object):
|
|
|
+
|
|
|
+ def __init__(self):
|
|
|
+ self.idx = -1
|
|
|
+ self.ans = ['4', 'some fucking notes', 'X']
|
|
|
+
|
|
|
+ def __call__(self, msg):
|
|
|
+ self.idx += 1
|
|
|
+ return self.ans[self.idx]
|
|
|
+
|
|
|
+
|
|
|
class TestBaseUI(unittest.TestCase):
|
|
|
|
|
|
def setUp(self):
|
|
@@ -131,7 +144,19 @@ class TestBaseUI(unittest.TestCase):
|
|
|
self.assertListEqual([], self.tester.cli._get_ids('5x'))
|
|
|
self.assertListEqual([], self.tester.cli._get_ids('5\\'))
|
|
|
|
|
|
- def test_8_do_delete(self):
|
|
|
+ def test_8_do_edit(self):
|
|
|
+ node = self.tester.cli._db.getnodes([1])[0]
|
|
|
+ node = node[1:5] + [node[5:]]
|
|
|
+ node = Node.from_encrypted_entries(*node)
|
|
|
+ sys.stdin = StringIO(("1\nfoo\nx\n"))
|
|
|
+ self.tester.cli.do_edit('1')
|
|
|
+ v = StringIO()
|
|
|
+ sys.stdin = sys.__stdin__
|
|
|
+ sys.stdout = v
|
|
|
+ self.tester.cli.do_print('1')
|
|
|
+ self.assertIn('\x1b[31mUsername:\x1b[0m foo', v.getvalue())
|
|
|
+
|
|
|
+ def test_9_do_delete(self):
|
|
|
self.assertIsNone(self.tester.cli._do_rm('x'))
|
|
|
sys.stdin = StringIO("y\n")
|
|
|
self.tester.cli.do_rm('1')
|