Coverage for lobster/tools/cpptest/parser/constants.py: 100%
22 statements
« prev ^ index » next coverage.py v7.10.2, created at 2025-08-06 09:51 +0000
« prev ^ index » next coverage.py v7.10.2, created at 2025-08-06 09:51 +0000
1import re
4class Constants:
5 def __init__(self, codebeamer_url = ''):
7 self.codebeamer_link = codebeamer_url + "/issue/"
8 self.requirement = re.compile(r'@requirement[\s\S]*?(?=@|\Z)')
9 self.requirement_tag_http = ((r"([@\\]requirement(\s+"
10 r"(CB-#\d+\s+)*({}\d+\s*,?\s*/*\*?)+)+)")
11 .format(self.codebeamer_link))
12 self.requirement_tag_http_named = (r"({}(?P<number>\d+))"
13 .format(self.codebeamer_link))
15 NON_EXISTING_INFO = "---"
17 LOBSTER_GENERATOR = "lobster-cpptest"
19 VALID_TESTMETHODS = [
20 "TM_EQUIVALENCE",
21 "TM_PAIRWISE",
22 "TM_GUESSING",
23 "TM_BOUNDARY",
24 "TM_CONDITION",
25 "TM_REQUIREMENT",
26 "TM_TABLE",
27 ]
29 VALID_TEST_MACROS = [
30 "TEST",
31 "TEST_P",
32 "TEST_F",
33 "TYPED_TEST",
34 "TYPED_TEST_P",
35 "TYPED_TEST_SUITE",
36 "TEST_P_INSTANCE",
37 "TEST_F_INSTANCE",
38 ]
40 TEST_CASE_INTRO = re.compile(r"^\s*(" +
41 "|".join(VALID_TEST_MACROS) +
42 r")\s*\(")
43 TEST_CASE_INFO = re.compile(
44 r"^\s*(" + "|".join(VALID_TEST_MACROS) +
45 r")\s*\(\s*(?P<suite_name>\w+),\s*(?P<test_name>\w+)\)"
46 )
47 REQUIREMENT_TAG = r"(CB-#\d+)"
49 REQUIRED_BY = re.compile(r".*[@\\]requiredby\s+([\s*/]*(\w*::\w+),?\s*)+")
50 REQUIRED_BY_TAG = r"(\w*::\w+)"
51 DEFECT = re.compile(
52 r"(@defect\s+)(((?:(CB-#\d+)|(OCT-#\d+)),?\s*)+)" +
53 r"(?:///|/)\s+(((?:(CB-#\d+)|(OCT-#\d+)),?\s)+)?"
54 )
55 BRIEF = re.compile(r"(@brief\s+)([^@]+)")
56 VERSION = re.compile(r"(@version\s+)(\d+([,]? \d+)*)+")
57 OCT_TAG = r"(OCT-#\d+)"
58 TESTMETHODS = re.compile(r"(@testmethods\s+)([^@]+)")
59 TEST = re.compile(r"(@test\s+)([^@]+)")