PySR / pysr /test /test_cli.py
MilesCranmer's picture
Fix CLI tests
dd9c3ed unverified
raw
history blame
2.62 kB
import unittest
from textwrap import dedent
from click import testing as click_testing
def get_runtests():
# Lazy load to avoid circular imports.
from .._cli.main import pysr
class TestCli(unittest.TestCase):
# TODO: Include test for custom project here.
def setUp(self):
self.cli_runner = click_testing.CliRunner()
def test_help_on_all_commands(self):
expected = dedent(
"""
Usage: pysr [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
install DEPRECATED (dependencies are now installed at import).
test Run parts of the PySR test suite.
"""
)
result = self.cli_runner.invoke(pysr, ["--help"])
self.assertEqual(result.output.strip(), expected.strip())
self.assertEqual(result.exit_code, 0)
def test_help_on_install(self):
expected = dedent(
"""
Usage: pysr install [OPTIONS]
DEPRECATED (dependencies are now installed at import).
Options:
-p, --project TEXT
-q, --quiet Disable logging.
--precompile
--no-precompile
--help Show this message and exit.
"""
)
result = self.cli_runner.invoke(pysr, ["install", "--help"])
self.assertEqual(result.output.strip(), expected.strip())
self.assertEqual(result.exit_code, 0)
def test_help_on_test(self):
expected = dedent(
"""
Usage: pysr test [OPTIONS] TESTS
Run parts of the PySR test suite.
Choose from main, jax, torch, cli, and startup. You can give multiple tests,
separated by commas.
Options:
--help Show this message and exit.
"""
)
result = self.cli_runner.invoke(pysr, ["test", "--help"])
self.assertEqual(result.output.strip(), expected.strip())
self.assertEqual(result.exit_code, 0)
def runtests():
"""Run all tests in cliTest.py."""
loader = unittest.TestLoader()
suite = unittest.TestSuite()
suite.addTests(loader.loadTestsFromTestCase(TestCli))
runner = unittest.TextTestRunner()
return runner.run(suite)
return runtests