From 19434d4c742e1e7d8d9f7c8d572d93ee1fb8d620 Mon Sep 17 00:00:00 2001 From: "Ilya.Kazakevich" Date: Thu, 7 Jul 2016 19:04:38 +0300 Subject: [PATCH] Escape test output If we test testrunner, and its output contains ##teamcity, then it is processed with Idea instead of testcase. --- python/testSrc/com/jetbrains/env/PyEnvTaskRunner.java | 2 +- python/testSrc/com/jetbrains/env/PyEnvTestCase.java | 7 +++++++ python/testSrc/com/jetbrains/env/PyToxTest.java | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/python/testSrc/com/jetbrains/env/PyEnvTaskRunner.java b/python/testSrc/com/jetbrains/env/PyEnvTaskRunner.java index a9eacd86c4ba..e60c81a8f8df 100644 --- a/python/testSrc/com/jetbrains/env/PyEnvTaskRunner.java +++ b/python/testSrc/com/jetbrains/env/PyEnvTaskRunner.java @@ -75,7 +75,7 @@ public class PyEnvTaskRunner { // Exception is thrown anyway, so we escape message before logging if (e.getMessage().contains("enteredTheMatrix")) { // .error( may lead to new exception with out of stacktrace. - logger.warn(e.getMessage().replace("##", "from test: \\##")); + logger.warn(PyEnvTestCase.escapeTestMessage(e.getMessage())); } else { logger.error(e); diff --git a/python/testSrc/com/jetbrains/env/PyEnvTestCase.java b/python/testSrc/com/jetbrains/env/PyEnvTestCase.java index 0582bb633e07..bec4ab9d5663 100644 --- a/python/testSrc/com/jetbrains/env/PyEnvTestCase.java +++ b/python/testSrc/com/jetbrains/env/PyEnvTestCase.java @@ -79,6 +79,13 @@ public abstract class PyEnvTestCase { } }; + /** + * Escape test output to prevent python test be processed as test result + */ + public static String escapeTestMessage(@NotNull final String message) { + return message.replace("##", "from test: \\##"); + } + protected boolean isStaging(Description description) { try { if (description.getTestClass().getMethod(description.getMethodName()).isAnnotationPresent(Staging.class)) { diff --git a/python/testSrc/com/jetbrains/env/PyToxTest.java b/python/testSrc/com/jetbrains/env/PyToxTest.java index ef8873ef665b..dad044e7a8b8 100644 --- a/python/testSrc/com/jetbrains/env/PyToxTest.java +++ b/python/testSrc/com/jetbrains/env/PyToxTest.java @@ -267,7 +267,7 @@ public final class PyToxTest extends PyEnvTestCase { if (!stderr.isEmpty()) { - Logger.getInstance(PyToxTest.class).warn(stderr); + Logger.getInstance(PyToxTest.class).warn(PyEnvTestCase.escapeTestMessage(stderr)); }