Skip to content
This repository was archived by the owner on Dec 25, 2024. It is now read-only.

Commit 86a6c27

Browse files
committed
Adds testIdenticalSchemasHaveDifferentBasenames
1 parent ad031a2 commit 86a6c27

2 files changed

Lines changed: 28 additions & 0 deletions

File tree

modules/openapi-json-schema-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929

3030
import org.apache.commons.io.FileUtils;
3131
import org.openapitools.codegen.api.TemplatePathLocator;
32+
import org.openapitools.codegen.config.GlobalSettings;
3233
import org.openapitools.codegen.ignore.CodegenIgnoreProcessor;
3334
import org.openapitools.codegen.model.ModelMap;
3435
import org.openapitools.codegen.model.ModelsMap;
@@ -239,6 +240,7 @@ public PythonClientCodegen() {
239240
// When the 'additionalProperties' keyword is not present in a OAS schema, allow
240241
// undeclared properties. This is compliant with the JSON schema specification.
241242
this.setDisallowAdditionalPropertiesIfNotPresent(false);
243+
GlobalSettings.setProperty("x-disallow-additional-properties-if-not-present", "false");
242244

243245
// this may set datatype right for additional properties
244246
instantiationTypes.put("map", "dict");

modules/openapi-json-schema-generator/src/test/java/org/openapitools/codegen/python/PythonClientTest.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,4 +233,30 @@ public void testImportWithQualifiedPackageName() throws Exception {
233233
String importValue = codegen.toModelImport("model_name");
234234
Assert.assertEquals(importValue, "from openapi.client.model.model_name import ModelName");
235235
}
236+
237+
@Test
238+
public void testIdenticalSchemasHaveDifferentBasenames() {
239+
final PythonClientCodegen codegen = new PythonClientCodegen();
240+
241+
Schema objSchema = new Schema();
242+
objSchema.setType("object");
243+
Schema addProp = new Schema();
244+
addProp.setType("object");
245+
objSchema.setAdditionalProperties(addProp);
246+
247+
Schema arraySchema = new ArraySchema();
248+
Schema items = new Schema();
249+
items.setType("object");
250+
arraySchema.setItems(items);
251+
252+
CodegenProperty objSchemaProp = codegen.fromProperty("objSchemaProp", objSchema, false, false);
253+
CodegenProperty arraySchemaProp = codegen.fromProperty("arraySchemaProp", arraySchema, false, false);
254+
Assert.assertEquals(objSchemaProp.getAdditionalProperties().baseName, "additional_properties");
255+
Assert.assertEquals(arraySchemaProp.getItems().baseName, "items");
256+
257+
CodegenModel objSchemaModel = codegen.fromModel("objSchemaModel", objSchema);
258+
CodegenModel arraySchemaModel = codegen.fromModel("arraySchemaModel", arraySchema);
259+
Assert.assertEquals(objSchemaModel.getAdditionalProperties().baseName, "additional_properties");
260+
Assert.assertEquals(arraySchemaModel.getItems().baseName, "items");
261+
}
236262
}

0 commit comments

Comments
 (0)