forked from loafle/openapi-generator-original
Adds fix for issue 7372 (#7383)
This commit is contained in:
parent
0173acd1d3
commit
8556cb8d71
@ -781,7 +781,7 @@ public class ModelUtils {
|
||||
}
|
||||
} else if (addlProps instanceof Schema) {
|
||||
// additionalProperties defined as {}
|
||||
if (addlProps.getType() == null && (addlProps.getProperties() == null || addlProps.getProperties().isEmpty())) {
|
||||
if (addlProps.getType() == null && addlProps.get$ref() == null && (addlProps.getProperties() == null || addlProps.getProperties().isEmpty())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -21,9 +21,15 @@ import io.swagger.v3.oas.models.OpenAPI;
|
||||
import io.swagger.v3.oas.models.Operation;
|
||||
import io.swagger.v3.oas.models.media.*;
|
||||
import io.swagger.v3.parser.util.SchemaTypeUtil;
|
||||
|
||||
import java.io.File;
|
||||
import java.math.BigDecimal;
|
||||
import java.nio.file.Files;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.openapitools.codegen.*;
|
||||
import org.openapitools.codegen.config.CodegenConfigurator;
|
||||
import org.openapitools.codegen.languages.PythonClientExperimentalCodegen;
|
||||
import org.openapitools.codegen.utils.ModelUtils;
|
||||
import org.testng.Assert;
|
||||
@ -375,4 +381,22 @@ public class PythonClientExperimentalTest {
|
||||
Assert.assertEquals(noDefaultEumLengthOneModel.defaultValue, "15.0");
|
||||
Assert.assertEquals(noDefaultEumLengthOneModel.hasRequired, false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testObjectModelWithRefedAdditionalPropertiesIsGenerated() throws Exception {
|
||||
File output = Files.createTempDirectory("test").toFile();
|
||||
|
||||
final CodegenConfigurator configurator = new CodegenConfigurator()
|
||||
.setGeneratorName("python-experimental")
|
||||
.setInputSpec("src/test/resources/3_0/issue_7372.yaml")
|
||||
.setOutputDir(output.getAbsolutePath().replace("\\", "/"));
|
||||
|
||||
final ClientOptInput clientOptInput = configurator.toClientOptInput();
|
||||
DefaultGenerator generator = new DefaultGenerator();
|
||||
List<File> files = generator.opts(clientOptInput).generate();
|
||||
|
||||
TestUtils.ensureContainsFile(files, output, "openapi_client/model/a.py");
|
||||
TestUtils.ensureContainsFile(files, output, "openapi_client/model/b.py");
|
||||
output.deleteOnExit();
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,15 @@
|
||||
openapi: 3.0.0
|
||||
info:
|
||||
title: foo
|
||||
version: 1.0.0
|
||||
components:
|
||||
schemas:
|
||||
A:
|
||||
type: object
|
||||
additionalProperties:
|
||||
$ref: '#/components/schemas/B'
|
||||
B:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
paths: {}
|
Loading…
x
Reference in New Issue
Block a user