@@ -352,12 +352,19 @@ def test_write_manifest_pyproject_never_rewrites_explicit_requirements_source(
352352 pass
353353
354354
355- def test_write_manifest_pyproject_unmocked_end_to_end (runner : CliRunner , project_dir : pathlib .Path ):
355+ @pytest .mark .parametrize ("encoding" , ["utf-8" , "utf-8-sig" ])
356+ @pytest .mark .parametrize ("command" , ["pyproject" , "api" ])
357+ def test_write_manifest_pyproject_unmocked_end_to_end (
358+ runner : CliRunner , project_dir : pathlib .Path , encoding : str , command : str
359+ ):
356360 """Real environment inspection: default config must yield a deployable manifest."""
357- _write_pyproject (project_dir , _REQ_PYPROJECT )
361+ (project_dir / "pyproject.toml" ). write_text ( textwrap . dedent ( _REQ_PYPROJECT ), encoding = encoding )
358362 (project_dir / "app.py" ).write_text ("app = None\n " )
359363
360- result = runner .invoke (cli , ["write-manifest" , "pyproject" , str (project_dir )])
364+ args = ["write-manifest" , command ]
365+ if command == "api" :
366+ args .extend (["-r" , "pyproject.toml" ])
367+ result = runner .invoke (cli , [* args , str (project_dir )])
361368
362369 assert result .exit_code == 0 , result .output
363370 manifest = _read_manifest (project_dir )
@@ -514,8 +521,11 @@ def test_write_manifest_pyproject_errors_on_missing_pyproject(runner: CliRunner,
514521 assert "quickstart" in result .output .lower ()
515522
516523
517- def test_write_manifest_pyproject_errors_on_malformed_pyproject (runner : CliRunner , project_dir : pathlib .Path ):
518- (project_dir / "pyproject.toml" ).write_text ("[tool.rsconnect\n app_mode =" )
524+ @pytest .mark .parametrize ("encoding" , ["utf-8" , "utf-8-sig" ])
525+ def test_write_manifest_pyproject_errors_on_malformed_pyproject (
526+ runner : CliRunner , project_dir : pathlib .Path , encoding : str
527+ ):
528+ (project_dir / "pyproject.toml" ).write_text ("[tool.rsconnect\n app_mode =" , encoding = encoding )
519529 result = runner .invoke (cli , ["write-manifest" , "pyproject" , str (project_dir )])
520530 assert result .exit_code != 0
521531 assert "could not be parsed" in result .output
0 commit comments