newfol/test/testmain.py
brian m. carlson a78ef81c3a
Set all test files executable.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
2014-11-18 03:10:22 +00:00

40 lines
1.2 KiB
Python
Executable file

#!/usr/bin/python3
from newfol.database import Database
from newfol.main import KeyboardShortcuts
import tempfile
import unittest
class TestKeyboardShortcuts(unittest.TestCase):
def create_temp_db(self, keys):
ddir = tempfile.TemporaryDirectory()
with open(ddir.name + "/schema", "w") as fp:
fp.write("fmt:0:newfol schema file:\ntxn:git\n")
for k in keys:
fp.write("ksh:%s\n" % ':'.join(k))
db = Database.load(ddir.name)
return (ddir, db)
def test_default_keys(self):
ddir, db = self.create_temp_db([])
ks = KeyboardShortcuts(db.schema().keys())
self.assertEqual(ks['ctrl x'], 'about')
with self.assertRaises(KeyError):
ks['ctrl p']
ddir.cleanup()
def test_override_keys(self):
ddir, db = self.create_temp_db([['ctrl x', 'quit']])
ks = KeyboardShortcuts(db.schema().keys())
self.assertEqual(ks['ctrl x'], 'quit')
ddir.cleanup()
def test_new_keys(self):
ddir, db = self.create_temp_db([['ctrl p', 'quit']])
ks = KeyboardShortcuts(db.schema().keys())
self.assertEqual(ks['ctrl p'], 'quit')
ddir.cleanup()
if __name__ == '__main__':
unittest.main()