diff options
| -rw-r--r-- | src/main/java/org/zwobble/couscous/backends/python/PythonWriter.java | 7 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/backends/python/PythonSerializerTests.java | 7 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/couscous/backends/python/PythonWriter.java b/src/main/java/org/zwobble/couscous/backends/python/PythonWriter.java index da7445c..9112381 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/PythonWriter.java +++ b/src/main/java/org/zwobble/couscous/backends/python/PythonWriter.java @@ -19,7 +19,12 @@ public class PythonWriter { public void writeStringLiteral(String value) { builder.append("\""); - builder.append(value); + builder.append(value + .replace("\\", "\\\\") + .replace("\"", "\\\"") + .replace("\n", "\\n") + .replace("\r", "\\r") + .replace("\t", "\\t")); builder.append("\""); } diff --git a/src/test/java/org/zwobble/couscous/tests/backends/python/PythonSerializerTests.java b/src/test/java/org/zwobble/couscous/tests/backends/python/PythonSerializerTests.java index 9271d85..9411d3e 100644 --- a/src/test/java/org/zwobble/couscous/tests/backends/python/PythonSerializerTests.java +++ b/src/test/java/org/zwobble/couscous/tests/backends/python/PythonSerializerTests.java @@ -36,10 +36,15 @@ public class PythonSerializerTests { @Test public void stringsAreNotBoxed() { - // TODO: escaping String output = serialize(pythonStringLiteral("blah")); assertEquals("\"blah\"", output); } + + @Test + public void stringsAreEscaped() { + String output = serialize(pythonStringLiteral("\"\n\r\t\\")); + assertEquals("\"\\\"\\n\\r\\t\\\\\"", output); + } @Test public void booleansAreNotBoxed() { |
