Skip to content

Commit 4eadad8

Browse files
committed
Support dashes in test suite names
1 parent 9c4eb5e commit 4eadad8

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

scripts/split_tox_gh_actions/split_tox_gh_actions.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import configparser
1919
import hashlib
20+
import re
2021
import sys
2122
from collections import defaultdict
2223
from functools import reduce
@@ -25,6 +26,7 @@
2526

2627
from jinja2 import Environment, FileSystemLoader
2728

29+
VERSION_REGEX = re.compile(r"v{?[0-9.]+.*}?|latest")
2830

2931
OUT_DIR = Path(__file__).resolve().parent.parent.parent / ".github" / "workflows"
3032
TOX_FILE = Path(__file__).resolve().parent.parent.parent / "tox.ini"
@@ -207,10 +209,20 @@ def parse_tox():
207209
line = line.strip().lower()
208210

209211
try:
210-
# parse tox environment definition
211-
try:
212-
(raw_python_versions, framework, framework_versions) = line.split("-")
213-
except ValueError:
212+
# Parse tox environment definitions.
213+
# The format is pythonversions-integrationname-integrationversions.
214+
# Some valid examples:
215+
# {pyX.Y,pyX.Z}-integrationname-vA.B.C
216+
# {pyX.Y,pyX.Z}-integrationname-v{A.B.C}
217+
# {pyX.Y,pyX.Z}-integrationname
218+
# No that integrationname can also contain dashes, which makes this a
219+
# bit more annoying.
220+
raw_python_versions = line.split("-")[0]
221+
framework_versions = line.rsplit("-", maxsplit=1)[-1]
222+
framework = line[
223+
len(raw_python_versions) + 1 : -(len(framework_versions) + 1)
224+
]
225+
if not VERSION_REGEX.match(framework_versions):
214226
(raw_python_versions, framework) = line.split("-")
215227
framework_versions = []
216228

0 commit comments

Comments
 (0)