summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/test_commands.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/test_commands.py b/tests/test_commands.py
new file mode 100644
index 0000000..c948d69
--- /dev/null
+++ b/tests/test_commands.py
@@ -0,0 +1,56 @@
+import contextlib
+import io
+import tempfile
+import unittest
+
+from lesana import command
+
+
+class Args:
+ def __init__(self, args):
+ self.args = args
+
+ def __getattribute__(self, k):
+ try:
+ return super().__getattribute__(k)
+ except AttributeError:
+ try:
+ return self.args[k]
+ except KeyError as e:
+ raise AttributeError(e)
+
+
+class testCommands(unittest.TestCase):
+ def setUp(self):
+ self.collection_dir = tempfile.TemporaryDirectory()
+
+ def tearDown(self):
+ pass
+
+ def _edit_file(self, filepath):
+ return True
+
+ def _run_command(self, cmd, args):
+ stream = {
+ 'stdout': io.StringIO(),
+ 'stderr': io.StringIO(),
+ }
+ cmd.edit_file_in_external_editor = self._edit_file
+ cmd.args = Args(args)
+ with contextlib.redirect_stdout(stream['stdout']):
+ with contextlib.redirect_stderr(stream['stderr']):
+ cmd.main()
+ return stream
+
+ def test_init(self):
+ args = {
+ 'collection': self.collection_dir.name,
+ 'git': True,
+ }
+ streams = self._run_command(command.Init(), args)
+ self.assertEqual(streams['stdout'].getvalue(), '')
+ self.assertEqual(streams['stderr'].getvalue(), '')
+
+
+if __name__ == '__main__':
+ unittest.main()