| | import os |
| | import sys |
| | import unittest |
| | from unittest.mock import mock_open, patch |
| |
|
| |
|
| | git_repo_path = os.path.abspath(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))) |
| | sys.path.append(os.path.join(git_repo_path, "utils")) |
| |
|
| | from check_support_list import check_documentation |
| |
|
| |
|
| | class TestCheckSupportList(unittest.TestCase): |
| | def setUp(self): |
| | |
| | self.doc_content = """# Documentation |
| | ## FooProcessor |
| | |
| | [[autodoc]] module.FooProcessor |
| | |
| | ## BarProcessor |
| | |
| | [[autodoc]] module.BarProcessor |
| | """ |
| | self.source_content = """ |
| | class FooProcessor(nn.Module): |
| | pass |
| | |
| | class BarProcessor(nn.Module): |
| | pass |
| | """ |
| |
|
| | def test_check_documentation_all_documented(self): |
| | |
| | with patch("builtins.open", mock_open(read_data=self.doc_content)) as doc_file: |
| | doc_file.side_effect = [ |
| | mock_open(read_data=self.doc_content).return_value, |
| | mock_open(read_data=self.source_content).return_value, |
| | ] |
| |
|
| | undocumented = check_documentation( |
| | doc_path="fake_doc.md", |
| | src_path="fake_source.py", |
| | doc_regex=r"\[\[autodoc\]\]\s([^\n]+)", |
| | src_regex=r"class\s+(\w+Processor)\(.*?nn\.Module.*?\):", |
| | ) |
| | self.assertEqual(len(undocumented), 0, f"Expected no undocumented classes, got {undocumented}") |
| |
|
| | def test_check_documentation_missing_class(self): |
| | |
| | doc_content_missing = """# Documentation |
| | ## FooProcessor |
| | |
| | [[autodoc]] module.FooProcessor |
| | """ |
| | with patch("builtins.open", mock_open(read_data=doc_content_missing)) as doc_file: |
| | doc_file.side_effect = [ |
| | mock_open(read_data=doc_content_missing).return_value, |
| | mock_open(read_data=self.source_content).return_value, |
| | ] |
| |
|
| | undocumented = check_documentation( |
| | doc_path="fake_doc.md", |
| | src_path="fake_source.py", |
| | doc_regex=r"\[\[autodoc\]\]\s([^\n]+)", |
| | src_regex=r"class\s+(\w+Processor)\(.*?nn\.Module.*?\):", |
| | ) |
| | self.assertIn("BarProcessor", undocumented, f"BarProcessor should be undocumented, got {undocumented}") |
| |
|