summaryrefslogtreecommitdiff
path: root/tests/test_mixins.py
blob: 1e2f91d54fe22b674456791792b656f866833207 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import unittest

import hazwaz


class testEditorMixin(unittest.TestCase):
    def test_open_with_cat_existing_file(self):
        subcmd = hazwaz.mixins.ExternalEditorMixin()
        subcmd.editors = [("cat", "cat")]
        # TODO: suppress this output in the tests (we can't use
        # contextlib.redirect_stdout because that doesn't redirect the
        # stdout used by subprocess.
        res = subcmd.edit_file_in_external_editor("/bin/fgrep")
        self.assertTrue(res)

    def test_open_with_cat_missing_file(self):
        subcmd = hazwaz.mixins.ExternalEditorMixin()
        subcmd.editors = [("cat", "cat")]
        # TODO: suppress this output in the tests (we can't use
        # contextlib.redirect_stderr because that doesn't redirect the
        # stderr used by subprocess.
        res = subcmd.edit_file_in_external_editor("no_such_file")
        self.assertFalse(res)

    def test_open_with_non_existing_editor(self):
        subcmd = hazwaz.mixins.ExternalEditorMixin()
        subcmd.editors = [("no_such_command", "no_such_command")]
        with self.assertLogs() as cm:
            subcmd.edit_file_in_external_editor("no_such_file")
        self.assertIn(
            "Could not open file no_such_file with no_such_command",
            cm.output[0]
        )


if __name__ == '__main__':
    unittest.main()