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

Commit aec7e6b

Browse files
authored
Merge pull request #18 from OpenAPITools/14-fix-global-property-usage
Fixes global property usage
2 parents e71b903 + aafd83e commit aec7e6b

File tree

2 files changed

+55
-5
lines changed

2 files changed

+55
-5
lines changed

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

+7-5
Original file line numberDiff line numberDiff line change
@@ -494,13 +494,13 @@ public String apiFilename(String templateName, String tag) {
494494
return apiFileFolder() + File.separator + toApiFilename(tag) + suffix;
495495
}
496496

497-
private void generateFiles(List<List<Object>> processTemplateToFileInfos, String skippedByOption) {
497+
private void generateFiles(List<List<Object>> processTemplateToFileInfos, boolean shouldGenerate, String skippedByOption) {
498498
for (List<Object> processTemplateToFileInfo: processTemplateToFileInfos) {
499499
Map<String, Object> templateData = (Map<String, Object>) processTemplateToFileInfo.get(0);
500500
String templateName = (String) processTemplateToFileInfo.get(1);
501501
String outputFilename = (String) processTemplateToFileInfo.get(2);
502502
try {
503-
processTemplateToFile(templateData, templateName, outputFilename, true, skippedByOption);
503+
processTemplateToFile(templateData, templateName, outputFilename, shouldGenerate, skippedByOption);
504504
} catch (IOException e) {
505505
LOGGER.error("Error when writing template file {}", e.toString());
506506
}
@@ -664,9 +664,11 @@ protected void generateEndpoints(OperationsMap objs) {
664664
outputFilename = packageFilename(Arrays.asList("apis", "paths", pathModule + ".py"));
665665
apisFiles.add(Arrays.asList(operationMap, "apis_path_module.handlebars", outputFilename));
666666
}
667-
generateFiles(pathsFiles, CodegenConstants.APIS);
668-
generateFiles(apisFiles, CodegenConstants.APIS);
669-
generateFiles(testFiles, CodegenConstants.API_TESTS);
667+
boolean shouldGenerateApis = (boolean) additionalProperties().get(CodegenConstants.GENERATE_APIS);
668+
boolean shouldGenerateApiTests = (boolean) additionalProperties().get(CodegenConstants.GENERATE_API_TESTS);
669+
generateFiles(pathsFiles, shouldGenerateApis, CodegenConstants.APIS);
670+
generateFiles(apisFiles, shouldGenerateApis, CodegenConstants.APIS);
671+
generateFiles(testFiles, shouldGenerateApiTests, CodegenConstants.API_TESTS);
670672
}
671673

672674
/*

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

+48
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,20 @@
2121
import io.swagger.v3.oas.models.Operation;
2222
import io.swagger.v3.oas.models.media.*;
2323
import org.openapitools.codegen.*;
24+
import org.openapitools.codegen.config.CodegenConfigurator;
2425
import org.openapitools.codegen.languages.PythonClientCodegen;
2526
import org.openapitools.codegen.utils.ModelUtils;
2627
import org.testng.Assert;
2728
import org.testng.annotations.Test;
2829

30+
import java.io.File;
2931
import java.io.IOException;
3032
import java.nio.charset.StandardCharsets;
33+
import java.nio.file.Files;
34+
import java.nio.file.Path;
35+
import java.util.Collections;
36+
import java.util.List;
37+
import java.util.Map;
3138

3239
@SuppressWarnings("static-method")
3340
public class PythonClientTest {
@@ -116,4 +123,45 @@ private void testEndpointExampleValue(String endpoint, String specFilePath, Stri
116123

117124
}
118125

126+
@Test
127+
public void testApiTestsNotGenerated() throws Exception {
128+
File output = Files.createTempDirectory("test").toFile();
129+
130+
Map<String, String> globalProperties = Collections.singletonMap("apiTests", "false");
131+
final CodegenConfigurator configurator = new CodegenConfigurator()
132+
.setGlobalProperties(globalProperties)
133+
.setGeneratorName("python")
134+
.setInputSpec("src/test/resources/3_0/petstore.yaml")
135+
.setOutputDir(output.getAbsolutePath().replace("\\", "/"));
136+
137+
final ClientOptInput clientOptInput = configurator.toClientOptInput();
138+
DefaultGenerator generator = new DefaultGenerator();
139+
List<File> files = generator.opts(clientOptInput).generate();
140+
Assert.assertTrue(files.size() > 0);
141+
142+
Path pathThatShouldNotExist = output.toPath().resolve("openapi_client/test/test_paths");
143+
Assert.assertFalse(Files.isDirectory(pathThatShouldNotExist));
144+
output.deleteOnExit();
145+
}
146+
147+
@Test
148+
public void testApisNotGenerated() throws Exception {
149+
File output = Files.createTempDirectory("test").toFile();
150+
151+
Map<String, String> globalProperties = Collections.singletonMap("models", "");
152+
final CodegenConfigurator configurator = new CodegenConfigurator()
153+
.setGlobalProperties(globalProperties)
154+
.setGeneratorName("python")
155+
.setInputSpec("src/test/resources/3_0/petstore.yaml")
156+
.setOutputDir(output.getAbsolutePath().replace("\\", "/"));
157+
158+
final ClientOptInput clientOptInput = configurator.toClientOptInput();
159+
DefaultGenerator generator = new DefaultGenerator();
160+
List<File> files = generator.opts(clientOptInput).generate();
161+
Assert.assertTrue(files.size() > 0);
162+
163+
Path pathThatShouldNotExist = output.toPath().resolve("openapi_client/paths");
164+
Assert.assertFalse(Files.isDirectory(pathThatShouldNotExist));
165+
output.deleteOnExit();
166+
}
119167
}

0 commit comments

Comments
 (0)