From 42264aadd75bb4944005e31189d4a9aaf3aec17c Mon Sep 17 00:00:00 2001 From: Larry O'Leary Date: Mon, 14 Nov 2022 16:28:36 -0600 Subject: [PATCH] Fix invalid Python import for qualified package name (#14015) * Add unittest for toModelImport * Use `packageName` insetad of `packagePath()` --- .../codegen/languages/PythonClientCodegen.java | 2 +- .../openapitools/codegen/python/PythonClientTest.java | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java index de0b5bd79b4..965bbd35354 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java @@ -889,7 +889,7 @@ public class PythonClientCodegen extends AbstractPythonCodegen { @Override public String toModelImport(String name) { // name looks like Cat - return "from " + packagePath() + "." + modelPackage() + "." + toModelFilename(name) + " import " + toModelName(name); + return "from " + packageName + "." + modelPackage() + "." + toModelFilename(name) + " import " + toModelName(name); } @Override diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientTest.java index 8034a688f2d..698aaf89dbc 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientTest.java @@ -224,4 +224,13 @@ public class PythonClientTest { Assert.assertEquals(enumVars.get(0).get("name"), "DIGIT_THREE_67B9C"); Assert.assertEquals(enumVars.get(1).get("name"), "FFA5A4"); } + + @Test(description = "format imports of models using a package containing dots") + public void testImportWithQualifiedPackageName() throws Exception { + final PythonClientCodegen codegen = new PythonClientCodegen(); + codegen.setPackageName("openapi.client"); + + String importValue = codegen.toModelImport("model_name"); + Assert.assertEquals(importValue, "from openapi.client.model.model_name import ModelName"); + } } \ No newline at end of file