11import pathlib
22
3+ import jinja2
34import pytest
45
56
@@ -205,18 +206,34 @@ def test__build_metadata(self, mocker):
205206
206207 project = _Project (openapi = mocker .MagicMock (title = "My Test API" ))
207208 project .project_dir = mocker .MagicMock ()
208- pyproject_path = mocker .MagicMock ()
209- readme_path = mocker .MagicMock ()
210- project .project_dir .__truediv__ .side_effect = [pyproject_path , readme_path ]
209+ pyproject_path = mocker .MagicMock (autospec = pathlib .Path )
210+ readme_path = mocker .MagicMock (autospec = pathlib .Path )
211+ git_ignore_path = mocker .MagicMock (autospec = pathlib .Path )
212+ paths = {
213+ "pyproject.toml" : pyproject_path ,
214+ "README.md" : readme_path ,
215+ ".gitignore" : git_ignore_path ,
216+ }
217+ project .project_dir .__truediv__ .side_effect = lambda x : paths [x ]
211218
212- pyproject_template = mocker .MagicMock ()
213- readme_template = mocker .MagicMock ()
214- project .env = mocker .MagicMock ()
215- project .env .get_template .side_effect = [pyproject_template , readme_template ]
219+ pyproject_template = mocker .MagicMock (autospec = jinja2 .Template )
220+ readme_template = mocker .MagicMock (autospec = jinja2 .Template )
221+ git_ignore_template = mocker .MagicMock (autospec = jinja2 .Template )
222+ project .env = mocker .MagicMock (autospec = jinja2 .Environment )
223+ templates = {
224+ "pyproject.toml" : pyproject_template ,
225+ "README.md" : readme_template ,
226+ ".gitignore" : git_ignore_template ,
227+ }
228+ project .env .get_template .side_effect = lambda x : templates [x ]
216229
217230 project ._build_metadata ()
218231
219- project .env .get_template .assert_has_calls ([mocker .call ("pyproject.toml" ), mocker .call ("README.md" )])
232+ project .env .get_template .assert_has_calls ([
233+ mocker .call ("pyproject.toml" ),
234+ mocker .call ("README.md" ),
235+ mocker .call (".gitignore" ),
236+ ])
220237
221238 pyproject_template .render .assert_called_once_with (
222239 project_name = project .project_name ,
@@ -230,6 +247,8 @@ def test__build_metadata(self, mocker):
230247 package_name = project .package_name ,
231248 )
232249 readme_path .write_text .assert_called_once_with (readme_template .render ())
250+ git_ignore_template .render .assert_called_once ()
251+ git_ignore_path .write_text .assert_called_once_with (git_ignore_template .render ())
233252
234253 def test__build_models (self , mocker ):
235254 from openapi_python_client import _Project , OpenAPI
0 commit comments