tests: fix test failure with msys2's Python 3.8.1-1 package
authorSimon Marchi <simon.marchi@efficios.com>
Tue, 7 Jan 2020 03:33:49 +0000 (22:33 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 20 Jan 2020 20:15:24 +0000 (15:15 -0500)
msys2's Python package version 3.8.1-1 produces wrong output for
PureWindowsPath's string representation.  It does this:

    >>> import pathlib
    >>> str(pathlib.PureWindowsPath('/yo/madame'))
    '/yo/madame'

When it should do this:

    >>> import pathlib
    >>> str(pathlib.PureWindowsPath('/yo/madame'))
    '\\yo\\madame'

Because of this, tests/plugins/src.ctf.fs/query/test_query_trace_info.py
is currently failing, as the Babeltrace output contains back-slashes but
the regex we produce contains forward-slashes.

The issue appears to be fixed in 3.8.1-2:

    https://github.com/msys2/MINGW-packages/commit/7ce8394ec8af3bdef83d1a24fd9a96bf8da3c154#diff-8b71128fa8f1e4e070196eeb2fc9a19d

But anyway, it's not really necessary to use PureWindowsPath and
PurePosixPath.  I changed the code to just use a version of the regex
with back-slashes when on Windows, and with front-slashes when on the
others.

Change-Id: Idcd865d87350682644a536ada95cfac161cc1182
Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/2733
Tested-by: jenkins <jenkins@lttng.org>
tests/plugins/src.ctf.fs/query/test_query_trace_info.py

index ff8264a349fba1d32ae7edcd3c0620124db9839e..e0e716b21b73a2fda3b9392bd8d4fb18ab0e2818 100644 (file)
@@ -18,7 +18,6 @@ import unittest
 import bt2
 import os
 import re
-from pathlib import PureWindowsPath, PurePosixPath
 
 
 test_ctf_traces_path = os.environ['BT_CTF_TRACES_PATH']
@@ -145,11 +144,12 @@ class QueryTraceInfoPortNameTestCase(unittest.TestCase):
             },
         ).query()
 
-        os_stream_path = PurePosixPath(
-            '/tests/data/ctf-traces/intersection/3eventsintersect/'
-        )
         if os.environ['BT_OS_TYPE'] == 'mingw':
-            os_stream_path = PureWindowsPath(os_stream_path)
+            os_stream_path = (
+                '\\tests\\data\\ctf-traces\\intersection\\3eventsintersect\\'
+            )
+        else:
+            os_stream_path = '/tests/data/ctf-traces/intersection/3eventsintersect/'
 
         self.assertEqual(len(res), 1)
         trace = res[0]
@@ -158,13 +158,13 @@ class QueryTraceInfoPortNameTestCase(unittest.TestCase):
         self.assertRegex(
             str(streams[0]["port-name"]),
             r"^7afe8fbe-79b8-4f6a-bbc7-d0c782e7ddaf \| 0 \| .*"
-            + re.escape(str(os_stream_path / "test_stream_0"))
+            + re.escape(os_stream_path + "test_stream_0")
             + r"$",
         )
         self.assertRegex(
             str(streams[1]["port-name"]),
             r"^7afe8fbe-79b8-4f6a-bbc7-d0c782e7ddaf \| 0 \| .*"
-            + re.escape(str(os_stream_path / "test_stream_1"))
+            + re.escape(os_stream_path + "test_stream_1")
             + r"$",
         )
 
@@ -175,11 +175,10 @@ class QueryTraceInfoPortNameTestCase(unittest.TestCase):
             {"inputs": [os.path.join(test_ctf_traces_path, "succeed", "succeed1")]},
         ).query()
 
-        os_stream_path = PurePosixPath(
-            '/tests/data/ctf-traces/succeed/succeed1/dummystream'
-        )
         if os.environ['BT_OS_TYPE'] == 'mingw':
-            os_stream_path = PureWindowsPath(os_stream_path)
+            os_stream_path = '\\tests\\data\\ctf-traces\\succeed\\succeed1\\dummystream'
+        else:
+            os_stream_path = '/tests/data/ctf-traces/succeed/succeed1/dummystream'
 
         self.assertEqual(len(res), 1)
         trace = res[0]
@@ -188,7 +187,7 @@ class QueryTraceInfoPortNameTestCase(unittest.TestCase):
         self.assertRegex(
             str(streams[0]["port-name"]),
             r"^2a6422d0-6cee-11e0-8c08-cb07d7b3a564 \| .*"
-            + re.escape(str(os_stream_path))
+            + re.escape(os_stream_path)
             + r"$",
         )
 
This page took 0.0257 seconds and 4 git commands to generate.