# Copyright 2026 jCloud # 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. import pathlib import pytest from jcloud_docsgen.cli.cli import create_argument_parser, main as cli_main def test_sections_error(): parser = create_argument_parser() with pytest.raises(SystemExit): parser.parse_args([ 'python', '-s', 'param' # correct: `params` ]) with pytest.raises(SystemExit): parser.parse_args([ 'python', '-s', 'params', 'docstrng' # correct: `docstring` ]) def test_sections_success(): parser = create_argument_parser() parser.parse_args([ 'python', '-s', 'params' ]) parser.parse_args([ 'python', '-s', 'params', 'docstring' ]) def test_docs_generation(expectdir): with expectdir('python_project') as output_dir: output_dir: pathlib.Path input_dir = pathlib.Path(__file__).parent / 'python_project/project' cli_main([ 'python', '-s', 'params', 'docstring', '-HTo', str(output_dir), str(input_dir) ])