From 3a0d45684534994e34219224bb05422ea47baf78 Mon Sep 17 00:00:00 2001 From: Joshix-1 <57299889+Joshix-1@users.noreply.github.com> Date: Thu, 5 Jan 2023 10:21:44 +0000 Subject: [PATCH 1/2] fix escaping single-quote with by correctly escaping the backslash --- .../openapitools/codegen/languages/AbstractPythonCodegen.java | 2 +- .../org/openapitools/codegen/languages/CSharpClientCodegen.java | 2 +- .../codegen/languages/CSharpNetCoreClientCodegen.java | 2 +- .../codegen/languages/CSharpNetCoreReducedClientCodegen.java | 2 +- 4 files changed, 4 insertions(+), 4 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 b523fe3a8083..c0b681d52bf0 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 @@ -158,7 +158,7 @@ public String toDefaultValue(Schema p) { if (Pattern.compile("\r\n|\r|\n").matcher((String) p.getDefault()).find()) return "'''" + p.getDefault() + "'''"; else - return "'" + ((String) p.getDefault()).replace("'", "\'") + "'"; + return "'" + ((String) p.getDefault()).replace("'", "\\'") + "'"; } } else if (ModelUtils.isArraySchema(p)) { if (p.getDefault() != null) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java index 153d9b4b4710..db7ca5228929 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java @@ -662,7 +662,7 @@ public void postProcessPattern(String pattern, Map vendorExtensi + "/pattern/modifiers convention. " + pattern + " is not valid."); } - String regex = pattern.substring(1, i).replace("'", "\'"); + String regex = pattern.substring(1, i).replace("'", "\\'"); List modifiers = new ArrayList(); // perl requires an explicit modifier to be culture specific and .NET is the reverse. diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpNetCoreClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpNetCoreClientCodegen.java index 184df911737e..3f0d6c5aacf2 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpNetCoreClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpNetCoreClientCodegen.java @@ -606,7 +606,7 @@ public void postProcessPattern(String pattern, Map vendorExtensi + "/pattern/modifiers convention. " + pattern + " is not valid."); } - String regex = pattern.substring(1, i).replace("'", "\'").replace("\"", "\"\""); + String regex = pattern.substring(1, i).replace("'", "\\'").replace("\"", "\"\""); List modifiers = new ArrayList(); // perl requires an explicit modifier to be culture specific and .NET is the reverse. diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpNetCoreReducedClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpNetCoreReducedClientCodegen.java index e9b09f0acb99..8c43b7e11660 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpNetCoreReducedClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpNetCoreReducedClientCodegen.java @@ -495,7 +495,7 @@ public void postProcessPattern(String pattern, Map vendorExtensi + "/pattern/modifiers convention. " + pattern + " is not valid."); } - String regex = pattern.substring(1, i).replace("'", "\'").replace("\"", "\"\""); + String regex = pattern.substring(1, i).replace("'", "\\'").replace("\"", "\"\""); List modifiers = new ArrayList(); // perl requires an explicit modifier to be culture specific and .NET is the reverse. From deaa7059827395772fa597e24718d3e145c040ac Mon Sep 17 00:00:00 2001 From: Joshix-1 Date: Thu, 5 Jan 2023 11:32:22 +0100 Subject: [PATCH 2/2] Python: fix tests excpecting no single quotes --- .../codegen/python/PythonLegacyClientCodegenTest.java | 2 +- .../codegen/python/PythonNextgenClientCodegenTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonLegacyClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonLegacyClientCodegenTest.java index 28f3d68c0c58..6a0806599d19 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonLegacyClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonLegacyClientCodegenTest.java @@ -123,7 +123,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 = "convert a python model with dots") diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonNextgenClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonNextgenClientCodegenTest.java index 38b2f97fd45e..cc7a6b2a49d9 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonNextgenClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonNextgenClientCodegenTest.java @@ -122,7 +122,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 = "convert a python model with dots")