@@ -764,3 +764,48 @@ def test_generate_creates_client_with_custom_scalars_imports(
764764 f"{ generator .client_file_name } .py"
765765 ).open () as client_file :
766766 assert "from .abc import ScalarABC" in client_file .read ()
767+
768+
769+ def test_generate_models_only (tmp_path , schema , async_base_client_import ):
770+ package_name = "test_graphql_client"
771+ generator = PackageGenerator (
772+ package_name = package_name ,
773+ target_path = tmp_path .as_posix (),
774+ schema = schema ,
775+ init_generator = InitFileGenerator (),
776+ client_generator = ClientGenerator (
777+ base_client_import = async_base_client_import ,
778+ arguments_generator = ArgumentsGenerator (schema = schema ),
779+ ),
780+ enums_generator = EnumsGenerator (schema = schema ),
781+ input_types_generator = InputTypesGenerator (schema = schema ),
782+ fragments_generator = FragmentsGenerator (schema = schema , fragments_definitions = {}),
783+ models_only = True ,
784+ )
785+ query_str = """
786+ query CustomQuery($id: ID!) {
787+ query1(id: $id) {
788+ field1
789+ }
790+ }
791+ """
792+ generator .add_operation (parse (query_str ).definitions [0 ])
793+ generated_files = generator .generate ()
794+
795+ package_path = tmp_path / package_name
796+ assert (package_path / "__init__.py" ).exists ()
797+ assert (package_path / "base_model.py" ).exists ()
798+ assert (package_path / f"{ generator .enums_module_name } .py" ).exists ()
799+ assert (package_path / f"{ generator .input_types_module_name } .py" ).exists ()
800+ assert (package_path / "custom_query.py" ).exists ()
801+ assert "custom_query.py" in generated_files
802+ assert not (package_path / "client.py" ).exists ()
803+ assert not (package_path / generator .base_client_file_path .name ).exists ()
804+ assert not (package_path / EXCEPTIONS_FILE_PATH .name ).exists ()
805+ assert "client.py" not in generated_files
806+ assert EXCEPTIONS_FILE_PATH .name not in generated_files
807+ init_content = (package_path / "__init__.py" ).read_text ()
808+ assert "from .base_model import BaseModel, Upload" in init_content
809+ assert "Client" not in init_content
810+ assert "AsyncBaseClient" not in init_content
811+ assert "GraphQLClientError" not in init_content
0 commit comments