From 4fb3f0f3686e335fc7d69dd194bc515ddc0118d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pekka=20Kl=C3=A4rck?= Date: Fri, 7 Mar 2025 12:44:52 +0200 Subject: [PATCH] Test that BDD prefixes are sorted by length Part of #5340. --- utest/api/test_languages.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/utest/api/test_languages.py b/utest/api/test_languages.py index 8c7ad81bda8..0c93f0ce015 100644 --- a/utest/api/test_languages.py +++ b/utest/api/test_languages.py @@ -99,6 +99,15 @@ class X(Language): assert_equal(X().bdd_prefixes, {'List', 'is', 'default', 'but', 'any', 'iterable', 'works'}) + def test_bdd_prefixes_are_sorted_by_length(self): + class X(Language): + given_prefixes = ['1', 'longest'] + when_prefixes = ['XX'] + pattern = Languages([X()]).bdd_prefix_regexp.pattern + expected = r'\(longest\|given\|.*\|xx\|1\)\\s' + if not re.fullmatch(expected, pattern): + raise AssertionError(f"Pattern '{pattern}' did not match '{expected}'.") + class TestLanguageFromName(unittest.TestCase):