|
| 1 | +from pathlib import Path |
| 2 | + |
| 3 | +import pytest |
| 4 | +import yaml |
| 5 | + |
| 6 | +from nest.cli.src.generate.generate_service import GenerateService |
| 7 | + |
| 8 | + |
| 9 | +@pytest.mark.parametrize( |
| 10 | + "db_type,is_async,is_cli,expected", |
| 11 | + [ |
| 12 | + (None, False, False, (None, False, False)), |
| 13 | + ("sqlite", True, False, ("sqlite", True, False)), |
| 14 | + (None, False, True, ("", False, True)), |
| 15 | + ], |
| 16 | +) |
| 17 | +def test_generated_project_keeps_cli_settings_locally( |
| 18 | + tmp_path, monkeypatch, db_type, is_async, is_cli, expected |
| 19 | +): |
| 20 | + monkeypatch.chdir(tmp_path) |
| 21 | + service = GenerateService() |
| 22 | + package_settings = Path(__file__).parents[2] / "nest" / "settings.yaml" |
| 23 | + assert not package_settings.exists() |
| 24 | + |
| 25 | + service.generate_app("sample", db_type, is_async, is_cli) |
| 26 | + |
| 27 | + project = tmp_path / "sample" |
| 28 | + assert yaml.safe_load((project / "settings.yaml").read_text())["config"] |
| 29 | + assert not package_settings.exists() |
| 30 | + monkeypatch.chdir(project / "src") |
| 31 | + assert service.get_metadata() == expected |
| 32 | + |
| 33 | + |
| 34 | +def test_project_metadata_isolated_between_projects(tmp_path, monkeypatch): |
| 35 | + monkeypatch.chdir(tmp_path) |
| 36 | + service = GenerateService() |
| 37 | + service.generate_app("web", None, False, False) |
| 38 | + service.generate_app("database", "sqlite", True, False) |
| 39 | + |
| 40 | + monkeypatch.chdir(tmp_path / "web") |
| 41 | + assert service.get_metadata() == (None, False, False) |
| 42 | + monkeypatch.chdir(tmp_path / "database" / "src") |
| 43 | + assert service.get_metadata() == ("sqlite", True, False) |
0 commit comments