]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- sanitize class names for junit reporting
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 21 Aug 2017 21:13:12 +0000 (17:13 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Thu, 24 Aug 2017 13:38:25 +0000 (09:38 -0400)
Change-Id: I42821d8324208b708adc17a10b1a2758797cb9db
(cherry picked from commit a61ff195b5687b32828e1bc4d958c5cd87e94ff0)

lib/sqlalchemy/testing/plugin/plugin_base.py

index ab2529220165a403f49ae8b5b5103509f200e8f9..aeae944fe05d909ec896ec61e05e09fcd9b86dea 100644 (file)
@@ -426,7 +426,14 @@ def generate_sub_tests(cls, module):
     if getattr(cls, '__backend__', False):
         for cfg in _possible_configs_for_cls(cls):
             orig_name = cls.__name__
-            name = "%s_%s" % (cls.__name__, cfg.name)
+
+            # we can have special chars in these names except for the
+            # pytest junit plugin, which is tripped up by the brackets
+            # and periods, so sanitize
+
+            alpha_name = re.sub('[_\[\]\.]+', '_', cfg.name)
+            alpha_name = re.sub('_+$', '', alpha_name)
+            name = "%s_%s" % (cls.__name__, alpha_name)
             subcls = type(
                 name,
                 (cls, ),