From e0f011cc1fa0687a28b46c1b99b53662743b7750 Mon Sep 17 00:00:00 2001 From: Felix Sonntag Date: Fri, 3 May 2019 16:50:40 +0200 Subject: [PATCH] [Python][R] Escape single quotes in strings (#2808) --- .../codegen/languages/PythonClientCodegen.java | 2 +- .../openapitools/codegen/languages/RClientCodegen.java | 2 +- .../codegen/python/PythonClientCodegenTest.java | 9 +++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java index 9f99a4472a95..66ed01279a94 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java @@ -634,7 +634,7 @@ public String toDefaultValue(Schema p) { if (Pattern.compile("\r\n|\r|\n").matcher((String) p.getDefault()).find()) return "'''" + p.getDefault() + "'''"; else - return "'" + p.getDefault() + "'"; + return "'" + ((String) p.getDefault()).replaceAll("'","\'") + "'"; } } else if (ModelUtils.isArraySchema(p)) { if (p.getDefault() != null) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RClientCodegen.java index 8f2bca2a71cf..779b91dcfda6 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RClientCodegen.java @@ -569,7 +569,7 @@ public String toDefaultValue(Schema p) { if (Pattern.compile("\r\n|\r|\n").matcher((String) p.getDefault()).find()) return "'''" + p.getDefault() + "'''"; else - return "'" + p.getDefault() + "'"; + return "'" + ((String) p.getDefault()).replaceAll("'","\'") + "'"; } } else if (ModelUtils.isArraySchema(p)) { if (p.getDefault() != null) { 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 1c632d9d3f44..289007523282 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 @@ -92,4 +92,13 @@ public void testRegularExpressionOpenAPISchemaVersion3() { // pattern_with_modifiers '/^pattern\d{3}$/i Assert.assertEquals(op.allParams.get(5).pattern, "/^pattern\\d{3}$/i"); } + + @Test(description = "test single quotes escape") + public void testSingleQuotes() { + final PythonClientCodegen codegen = new PythonClientCodegen(); + StringSchema schema = new StringSchema(); + schema.setDefault("Text containing 'single' quote"); + String defaultValue = codegen.toDefaultValue(schema); + Assert.assertEquals("'Text containing \'single\' quote'", defaultValue); + } }