| 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}") |
|
|