Add a "unittest" that runs stuff like reminder and unscramble
[python_utils.git] / tests / run_some_dependencies_test.py
1 #!/usr/bin/env python3
2
3 """This is a "test" that just runs a few system utilities that have
4 dependencies on this library in "do nothing" mode and makes sure they
5 exit cleanly.
6
7 """
8
9 import logging
10 import unittest
11 from typing import Optional
12
13 import bootstrap
14 import exec_utils
15 import unittest_utils
16
17 logger = logging.getLogger(__name__)
18
19
20 class RunSomeDependenciesTest(unittest.TestCase):
21     def make_sure_random_utilities_still_seem_to_work(self):
22         commands = [
23             "/home/scott/cron/manage_lights.py -n --run_profiler",
24             "/home/scott/bin/reminder.py --logging_level=DEBUG >& /dev/null",
25             "/home/scott/bin/wordle.py --mode=AUTOPLAY --template=trial >& /dev/null",
26             "/home/scott/bin/tplink.py -a office_lights -c info --audit_import_events >& /dev/null",
27             "/home/scott/bin/unscramble.py ethyropadratoyzrhoiectmi --trace_memory >& /dev/null",
28         ]
29         for command in commands:
30             try:
31                 ret = exec_utils.cmd_with_timeout(command, 5.0)
32                 self.assertEqual(0, ret)
33             except Exception as e:
34                 logger.exception(e)
35                 self.fail(f"{command} exited with an unexpected exception: {e}")
36
37
38 if __name__ == '__main__':
39     bootstrap.initialize(unittest.main)()