From f2191a24057fbbd47b98b488d802bf0043349eac Mon Sep 17 00:00:00 2001 From: Curd Becker Date: Wed, 2 Apr 2025 20:16:10 +0200 Subject: [PATCH] Fix single quote escaping for python code generator (and its test) Hard to spot, but in Java the strings "'" and "\'" are identical, so the implementation and its test were broken identically. --- .../openapitools/codegen/languages/AbstractPythonCodegen.java | 2 +- .../openapitools/codegen/python/PythonClientCodegenTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonCodegen.java index 3cb5727c37c5..83f5ac1fb767 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonCodegen.java @@ -214,7 +214,7 @@ public String toDefaultValue(Schema p) { String defaultValue = String.valueOf(p.getDefault()); if (defaultValue != null) { defaultValue = defaultValue.replace("\\", "\\\\") - .replace("'", "\'"); + .replace("'", "\\'"); if (Pattern.compile("\r\n|\r|\n").matcher(defaultValue).find()) { return "'''" + defaultValue + "'''"; } else { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientCodegenTest.java index 8444ffc79607..853f86086ec8 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientCodegenTest.java @@ -139,7 +139,7 @@ public void testSingleQuotes() { StringSchema schema = new StringSchema(); schema.setDefault("Text containing 'single' quote"); String defaultValue = codegen.toDefaultValue(schema); - Assert.assertEquals("'Text containing \'single\' quote'", defaultValue); + Assert.assertEquals("'Text containing \\'single\\' quote'", defaultValue); } @Test(description = "test backslash default")