From 16d317fed7b47e0731a27ca8c13af00a2055aa32 Mon Sep 17 00:00:00 2001 From: Fu Hanxi Date: Tue, 30 Apr 2024 13:11:34 +0200 Subject: [PATCH] markers: support new ident '|' --- AUTHORS | 1 + changelog/12277.improvement.rst | 1 + src/_pytest/mark/expression.py | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 changelog/12277.improvement.rst diff --git a/AUTHORS b/AUTHORS index 4f61c0591..61f721dc0 100644 --- a/AUTHORS +++ b/AUTHORS @@ -156,6 +156,7 @@ Florian Bruhin Florian Dahlitz Floris Bruynooghe Fraser Stark +Fu Hanxi Gabriel Landau Gabriel Reis Garvit Shubham diff --git a/changelog/12277.improvement.rst b/changelog/12277.improvement.rst new file mode 100644 index 000000000..bf03b1c29 --- /dev/null +++ b/changelog/12277.improvement.rst @@ -0,0 +1 @@ +Supported vertical bar ``|`` inside a marker. diff --git a/src/_pytest/mark/expression.py b/src/_pytest/mark/expression.py index 78b7fda69..1b1f8a765 100644 --- a/src/_pytest/mark/expression.py +++ b/src/_pytest/mark/expression.py @@ -6,7 +6,7 @@ expression: expr? EOF expr: and_expr ('or' and_expr)* and_expr: not_expr ('and' not_expr)* not_expr: 'not' not_expr | '(' expr ')' | ident -ident: (\w|:|\+|-|\.|\[|\]|\\|/)+ +ident: (\w|:|\+|-|\.|\[|\]|\\|/|\|)+ The semantics are: @@ -86,7 +86,7 @@ class Scanner: yield Token(TokenType.RPAREN, ")", pos) pos += 1 else: - match = re.match(r"(:?\w|:|\+|-|\.|\[|\]|\\|/)+", input[pos:]) + match = re.match(r"(:?\w|:|\+|-|\.|\[|\]|\\|/|\|)+", input[pos:]) if match: value = match.group(0) if value == "or":