Spaces:
Running
Running
| 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, dev, and startup. You can give multiple | |
| tests, separated by commas. | |
| Options: | |
| -k TEXT Filter expressions to select specific tests. | |
| --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(just_tests=False): | |
| """Run all tests in cliTest.py.""" | |
| tests = [TestCli] | |
| if just_tests: | |
| return tests | |
| loader = unittest.TestLoader() | |
| suite = unittest.TestSuite() | |
| for test in tests: | |
| suite.addTests(loader.loadTestsFromTestCase(test)) | |
| runner = unittest.TextTestRunner() | |
| return runner.run(suite) | |
| return runtests | |