## @file # Tests for FMMT CLI exit status. # # Copyright (c) 2026, Zhaoqi Xu . All rights reserved.
# SPDX-License-Identifier: BSD-2-Clause-Patent # import os import subprocess import sys import unittest from pathlib import Path _BASETOOLS = Path(__file__).resolve().parent.parent _PYTHON_SRC = _BASETOOLS / 'Source' / 'Python' _FMMT_DIR = _PYTHON_SRC / 'FMMT' _FMMT_PY = _FMMT_DIR / 'FMMT.py' def _fmmt_env(): env = os.environ.copy() extra = os.pathsep.join((str(_PYTHON_SRC), str(_FMMT_DIR))) env['PYTHONPATH'] = extra + os.pathsep + env.get('PYTHONPATH', '') return env class TestFmmtExit(unittest.TestCase): def test_view_missing_file_exits_nonzero(self): result = subprocess.run( [sys.executable, str(_FMMT_PY), '-v', 'not-a-file'], env=_fmmt_env(), capture_output=True, text=True, ) self.assertNotEqual( result.returncode, 0, msg='FMMT -v not-a-file must fail: stdout=%r stderr=%r' % ( result.stdout, result.stderr), ) combined = result.stdout + result.stderr self.assertIn('Invalid inputfile', combined) def test_help_exits_zero(self): result = subprocess.run( [sys.executable, str(_FMMT_PY), '-h'], env=_fmmt_env(), capture_output=True, text=True, ) self.assertEqual(result.returncode, 0) if __name__ == '__main__': unittest.main()