Skip to content

Commit 8ba936c

Browse files
Add test cases
1 parent 646721a commit 8ba936c

2 files changed

Lines changed: 128 additions & 0 deletions

File tree

tests/common/plugins/conditional_mark/unit_test/tests_conditions.yaml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,36 @@ test_conditional_mark.py::test_mark_1:
2323
reason: "Skip test_conditional_mark.py::test_mark_1"
2424
conditions:
2525
- "asic_type in ['mellanox']"
26+
27+
test_conditional_mark.py::test_mark_2:
28+
skip:
29+
reason: "Skip test_conditional_mark.py::test_mark_2"
30+
31+
test_conditional_mark.py::test_mark_3:
32+
skip:
33+
reason: "Skip test_conditional_mark.py::test_mark_3"
34+
conditions_logical_operator: or
35+
conditions:
36+
- "topo_type in ['t0']"
37+
- "asic_type in ['mellanox']"
38+
39+
test_conditional_mark.py::test_mark_4:
40+
skip:
41+
reason: "Skip test_conditional_mark.py::test_mark_4"
42+
conditions:
43+
- "topo_type in ['t0']"
44+
- "asic_type in ['mellanox']"
45+
46+
test_conditional_mark.py::test_mark_5:
47+
skip:
48+
reason: "Skip test_conditional_mark.py::test_mark_5"
49+
conditions:
50+
- "topo_type in ['t0']"
51+
- "topo_type in ['t0']"
52+
53+
test_conditional_mark.py::test_mark_6:
54+
skip:
55+
reason: "Skip test_conditional_mark.py::test_mark_6"
56+
conditions:
57+
- "topo_type in ['t0']"
58+
- "topo_type not in ['t0']"

tests/common/plugins/conditional_mark/unit_test/unittest_find_all_matches.py

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,101 @@ def test_all_false_conditions_in_matching_path(self):
7272

7373
self.assertFalse(matches)
7474

75+
# Test case 4: The condition in the longest matching entry is empty
76+
def test_empty_conditions(self):
77+
conditions, session_mock = load_test_conditions()
78+
79+
nodeid = "test_conditional_mark.py::test_mark_2"
80+
81+
marks_found = []
82+
matches = find_all_matches(nodeid, conditions, session_mock, DYNAMIC_UPDATE_SKIP_REASON, CUSTOM_BASIC_FACTS)
83+
84+
for match in matches:
85+
for mark_name, mark_details in list(list(match.values())[0].items()):
86+
marks_found.append(mark_name)
87+
88+
if mark_name == "skip":
89+
self.assertEqual(mark_details.get("reason"), "Skip test_conditional_mark.py::test_mark_2")
90+
91+
self.assertEqual(len(marks_found), 1)
92+
self.assertIn('skip', marks_found)
93+
94+
# Test case 5: Test logic operation `or`
95+
def test_logic_operation_or(self):
96+
conditions, session_mock = load_test_conditions()
97+
98+
nodeid = "test_conditional_mark.py::test_mark_3"
99+
100+
marks_found = []
101+
matches = find_all_matches(nodeid, conditions, session_mock, DYNAMIC_UPDATE_SKIP_REASON, CUSTOM_BASIC_FACTS)
102+
103+
for match in matches:
104+
for mark_name, mark_details in list(list(match.values())[0].items()):
105+
marks_found.append(mark_name)
106+
107+
if mark_name == "skip":
108+
self.assertEqual(mark_details.get("reason"), "Skip test_conditional_mark.py::test_mark_3")
109+
110+
self.assertEqual(len(marks_found), 1)
111+
self.assertIn('skip', marks_found)
112+
113+
# Test case 6: Test logic operation `and`
114+
def test_logic_operation_and(self):
115+
conditions, session_mock = load_test_conditions()
116+
117+
nodeid = "test_conditional_mark.py::test_mark_4"
118+
119+
marks_found = []
120+
matches = find_all_matches(nodeid, conditions, session_mock, DYNAMIC_UPDATE_SKIP_REASON, CUSTOM_BASIC_FACTS)
121+
122+
for match in matches:
123+
for mark_name, mark_details in list(list(match.values())[0].items()):
124+
marks_found.append(mark_name)
125+
126+
if mark_name == "skip":
127+
self.assertEqual(mark_details.get("reason"), "Skip test_conditional_mark.py::test_mark")
128+
129+
self.assertEqual(len(marks_found), 1)
130+
self.assertIn('skip', marks_found)
131+
132+
# Test case 7: Test duplicated conditions
133+
def test_duplicated_conditions(self):
134+
conditions, session_mock = load_test_conditions()
135+
136+
nodeid = "test_conditional_mark.py::test_mark_5"
137+
138+
marks_found = []
139+
matches = find_all_matches(nodeid, conditions, session_mock, DYNAMIC_UPDATE_SKIP_REASON, CUSTOM_BASIC_FACTS)
140+
141+
for match in matches:
142+
for mark_name, mark_details in list(list(match.values())[0].items()):
143+
marks_found.append(mark_name)
144+
145+
if mark_name == "skip":
146+
self.assertEqual(mark_details.get("reason"), "Skip test_conditional_mark.py::test_mark_5")
147+
148+
self.assertEqual(len(marks_found), 1)
149+
self.assertIn('skip', marks_found)
150+
151+
# Test case 8: Test contradicting conditions
152+
def test_contradicting_conditions(self):
153+
conditions, session_mock = load_test_conditions()
154+
155+
nodeid = "test_conditional_mark.py::test_mark_6"
156+
157+
marks_found = []
158+
matches = find_all_matches(nodeid, conditions, session_mock, DYNAMIC_UPDATE_SKIP_REASON, CUSTOM_BASIC_FACTS)
159+
160+
for match in matches:
161+
for mark_name, mark_details in list(list(match.values())[0].items()):
162+
marks_found.append(mark_name)
163+
164+
if mark_name == "skip":
165+
self.assertEqual(mark_details.get("reason"), "Skip test_conditional_mark.py::test_mark")
166+
167+
self.assertEqual(len(marks_found), 1)
168+
self.assertIn('skip', marks_found)
169+
75170

76171
if __name__ == "__main__":
77172
unittest.main()

0 commit comments

Comments
 (0)