diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFastAPIServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFastAPIServerCodegen.java index fe6764014a2..5b14b738f07 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFastAPIServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFastAPIServerCodegen.java @@ -71,6 +71,7 @@ public class PythonFastAPIServerCodegen extends AbstractPythonCodegen { private static final int DEFAULT_SERVER_PORT = 8080; private static final String DEFAULT_PACKAGE_NAME = "openapi_server"; private static final String DEFAULT_SOURCE_FOLDER = "src"; + private static final String DEFAULT_IMPL_FOLDER = "impl"; private static final String DEFAULT_PACKAGE_VERSION = "1.0.0"; private String implPackage; @@ -109,7 +110,7 @@ public class PythonFastAPIServerCodegen extends AbstractPythonCodegen { additionalProperties.put("baseSuffix", BASE_CLASS_SUFFIX); additionalProperties.put(CodegenConstants.SOURCE_FOLDER, DEFAULT_SOURCE_FOLDER); additionalProperties.put(CodegenConstants.PACKAGE_NAME, DEFAULT_PACKAGE_NAME); - additionalProperties.put(CodegenConstants.FASTAPI_IMPLEMENTATION_PACKAGE, DEFAULT_PACKAGE_NAME.concat(".impl")); + additionalProperties.put(CodegenConstants.FASTAPI_IMPLEMENTATION_PACKAGE, DEFAULT_IMPL_FOLDER); languageSpecificPrimitives.add("List"); languageSpecificPrimitives.add("Dict"); @@ -124,7 +125,7 @@ public class PythonFastAPIServerCodegen extends AbstractPythonCodegen { apiPackage = "apis"; modelPackage = "models"; testPackage = "tests"; - implPackage = "impl"; + implPackage = DEFAULT_IMPL_FOLDER; apiTestTemplateFiles().put("api_test.mustache", ".py"); cliOptions.add(new CliOption(CodegenConstants.PACKAGE_NAME, "python package name (convention: snake_case).") @@ -153,10 +154,14 @@ public class PythonFastAPIServerCodegen extends AbstractPythonCodegen { if (additionalProperties.containsKey(CodegenConstants.FASTAPI_IMPLEMENTATION_PACKAGE)) { this.implPackage = ((String) additionalProperties.get(CodegenConstants.FASTAPI_IMPLEMENTATION_PACKAGE)); + // Prefix templating value with the package name + additionalProperties.put(CodegenConstants.FASTAPI_IMPLEMENTATION_PACKAGE, + this.packageName + "." + this.implPackage); } modelPackage = packageName + "." + modelPackage; apiPackage = packageName + "." + apiPackage; + implPackage = packageName + "." + implPackage; supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); supportingFiles.add(new SupportingFile("openapi.mustache", "", "openapi.yaml")); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonFastapiCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonFastapiCodegenTest.java index 2eb71268a12..9a222ac9fae 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonFastapiCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonFastapiCodegenTest.java @@ -30,7 +30,7 @@ public class PythonFastapiCodegenTest { List files = generator.opts(configurator.toClientOptInput()).generate(); files.forEach(File::deleteOnExit); - TestUtils.assertFileExists(Paths.get(output.getAbsolutePath(), "/src", IMPL_PKG, "__init__.py")); + TestUtils.assertFileExists(Paths.get(output.getAbsolutePath(), "/src", "/nodesc", IMPL_PKG, "__init__.py")); } @Test