@@ -183,3 +183,58 @@ def test_litestar_generator_saq_rendering(tmp_path: Path) -> None:
183183 # Verify SAQ dependency in pyproject.toml
184184 pyproject_content = (tmp_path / "pyproject.toml" ).read_text ()
185185 assert "litestar-saq>=0.7.0" in pyproject_content
186+
187+
188+ def test_litestar_generator_granian_context (tmp_path : Path ) -> None :
189+ """Verify Litestar generator template context values with Granian plugin enabled."""
190+ config = ProjectConfig (
191+ name = "Granian Test" ,
192+ framework = Framework .LITESTAR ,
193+ database = Database .NONE ,
194+ memory_store = MemoryStore .NONE ,
195+ plugins = ["litestar_granian" ],
196+ docker = False ,
197+ docker_infra = False ,
198+ )
199+
200+ generator = LitestarGenerator (config , tmp_path )
201+ context = generator ._get_template_context ()
202+
203+ assert context ["litestar_granian" ] is True
204+
205+
206+ def test_litestar_generator_granian_rendering (tmp_path : Path ) -> None :
207+ """Verify that Granian plugin templates are correctly rendered into the output directory."""
208+ config = ProjectConfig (
209+ name = "Granian Plugin Test" ,
210+ framework = Framework .LITESTAR ,
211+ database = Database .NONE ,
212+ memory_store = MemoryStore .NONE ,
213+ plugins = ["litestar_granian" ],
214+ docker = False ,
215+ docker_infra = False ,
216+ )
217+
218+ generator = LitestarGenerator (config , tmp_path )
219+ generator .generate ()
220+
221+ # Verify base files
222+ assert (tmp_path / "pyproject.toml" ).exists ()
223+ assert (tmp_path / "src" / "backend" / "app.py" ).exists ()
224+ assert (tmp_path / "src" / "backend" / "__main__.py" ).exists ()
225+
226+ # Verify Granian plugin in app.py
227+ app_content = (tmp_path / "src" / "backend" / "app.py" ).read_text ()
228+ assert "from litestar_granian import GranianPlugin" in app_content
229+ assert "GranianPlugin()," in app_content
230+
231+ # Verify Granian in __main__.py (not uvicorn)
232+ main_content = (tmp_path / "src" / "backend" / "__main__.py" ).read_text ()
233+ assert "from granian import Granian" in main_content
234+ assert "from granian.constants import Interfaces" in main_content
235+ assert "Granian(" in main_content
236+ assert "uvicorn" not in main_content
237+
238+ # Verify Granian dependency in pyproject.toml
239+ pyproject_content = (tmp_path / "pyproject.toml" ).read_text ()
240+ assert "litestar-granian>=0.14.2" in pyproject_content
0 commit comments