Spaces:
Running
Running
| # Copyright 2026 The ODML Authors. | |
| # | |
| # Licensed under the Apache License, Version 2.0 (the "License"); | |
| # you may not use this file except in compliance with the License. | |
| # You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an "AS IS" BASIS, | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| # See the License for the specific language governing permissions and | |
| # limitations under the License. | |
| """Unit tests for the custom colorized help formatter.""" | |
| from absl.testing import absltest | |
| import click | |
| from click.testing import CliRunner | |
| from litert_lm_cli import help_formatter | |
| # ANSI color and style constants | |
| RESET = "\x1b[0m" | |
| BOLD = "\x1b[1m" | |
| GREEN = "\x1b[32m" | |
| CYAN = "\x1b[36m" | |
| BRIGHT_CYAN = "\x1b[96m" | |
| BOLD_GREEN = f"{GREEN}{BOLD}" | |
| BOLD_BRIGHT_CYAN = f"{BRIGHT_CYAN}{BOLD}" | |
| def cli(): | |
| """CLI tool for testing.""" | |
| def dummy(): | |
| pass | |
| class HelpFormatterTest(absltest.TestCase): | |
| def setUp(self): | |
| super().setUp() | |
| self.runner = CliRunner() | |
| def test_group_help_formatting(self): | |
| result = self.runner.invoke(cli, ["--help"], color=True) | |
| self.assertEqual(result.exit_code, 0) | |
| output = result.output | |
| # Check for unindented description | |
| self.assertIn( | |
| f"CLI tool for testing.\n\n{BOLD_GREEN}Usage: {RESET}", output | |
| ) | |
| self.assertIn( | |
| f"{BOLD_BRIGHT_CYAN}test-cli{RESET} {CYAN}[OPTIONS] COMMAND" | |
| f" [ARGS]...{RESET}", | |
| output, | |
| ) | |
| # Check for bold green headings | |
| self.assertIn(f"{BOLD_GREEN}Commands{RESET}:", output) | |
| self.assertIn(f"{BOLD_GREEN}Global options{RESET}:", output) | |
| # Check for bold bright cyan terms | |
| self.assertIn(f"{BOLD_BRIGHT_CYAN}dummy{RESET}", output) | |
| self.assertIn(f"{BOLD_BRIGHT_CYAN}--help{RESET}", output) | |
| def test_command_help_formatting(self): | |
| result = self.runner.invoke(cli, ["dummy", "--help"], color=True) | |
| self.assertEqual(result.exit_code, 0) | |
| output = result.output | |
| # Check for unindented description | |
| self.assertIn( | |
| f"A dummy command to test help formatter.\n\n{BOLD_GREEN}Usage:" | |
| f" {RESET}", | |
| output, | |
| ) | |
| self.assertIn( | |
| f"{BOLD_BRIGHT_CYAN}test-cli dummy{RESET} {CYAN}[OPTIONS]{RESET}", | |
| output, | |
| ) | |
| # Check for bold green headings | |
| self.assertIn(f"{BOLD_GREEN}Options{RESET}:", output) | |
| # Check for bold bright cyan terms | |
| self.assertIn(f"{BOLD_BRIGHT_CYAN}--dummy-option{RESET}", output) | |
| self.assertIn(f"{BOLD_BRIGHT_CYAN}--help{RESET}", output) | |
| if __name__ == "__main__": | |
| absltest.main() | |