Skip to content

Commit 7cce466

Browse files
author
Sylvain MARIE
committed
Fixed issue with Empty id marker leaking to test ids. Fixed #171
1 parent b0681bb commit 7cce466

File tree

2 files changed

+96
-1
lines changed

2 files changed

+96
-1
lines changed

pytest_cases/fixture_parametrize_plus.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -531,7 +531,7 @@ def get_alternative_id(self):
531531

532532
def remove_empty_ids(callspec):
533533
# used by plugin.py to remove the EMPTY_ID from the callspecs
534-
callspec._idlist = [c for c in callspec._idlist if c != EMPTY_ID]
534+
callspec._idlist = [c for c in callspec._idlist if not c.startswith(EMPTY_ID)]
535535

536536
elif PYTEST421_OR_GREATER:
537537
# an empty string will be taken into account and filtered out in CallSpec2.id.
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
import pytest
2+
from pytest_cases import case, parametrize_with_cases
3+
4+
5+
class CreateCases(object):
6+
@case(id="current_object")
7+
def case_create_1(self):
8+
inputs = ["foo", "bar"]
9+
request_data = {"foo": "dfg", "data": "asd"}
10+
return inputs, request_data
11+
12+
@case(id="lala")
13+
def case_create_10(self):
14+
inputs = ["foo", "bar"]
15+
request_data = {"foo": "dfg", "data": "asd"}
16+
return inputs, request_data
17+
18+
@case(id="without_validation")
19+
@pytest.mark.usefixtures("validationOff")
20+
def case_create_2(self):
21+
inputs = ["foo", "bar"]
22+
request_data = {"foo": "dfg", "data": "asd"}
23+
return inputs, request_data
24+
25+
@case(id="history_object")
26+
def case_create_3(self):
27+
inputs = ["foo", "bar"]
28+
request_data = {"foo": "dfg", "data": "asd"}
29+
return inputs, request_data
30+
31+
@case(id="xml_with_namespaces")
32+
def case_create_4(self):
33+
inputs = ["foo", "bar"]
34+
request_data = {"foo": "dfg", "data": "asd"}
35+
return inputs, request_data
36+
37+
@case(id="duplicate_name")
38+
def case_create_6(self):
39+
inputs = ["foo", "bar"]
40+
request_data = {"foo": "dfg", "data": "asd"}
41+
return inputs, request_data
42+
43+
@case(id="duplicate_name_without_valid")
44+
@pytest.mark.usefixtures("validationOff")
45+
def case_create_61(self):
46+
inputs = ["foo", "bar"]
47+
request_data = {"foo": "dfg", "data": "asd"}
48+
return inputs, request_data
49+
50+
@case(id="not_enough_namespaceses")
51+
def case_create_7(self):
52+
inputs = ["foo", "bar"]
53+
request_data = {"foo": "dfg", "data": "asd"}
54+
return inputs, request_data
55+
56+
57+
@case(id="invalid_xml")
58+
def case_create_8(self):
59+
inputs = ["foo", "bar"]
60+
request_data = {"foo": "dfg", "data": "asd"}
61+
return inputs, request_data
62+
63+
@case(id="invalid_xml_without_valid")
64+
@pytest.mark.usefixtures("validationOff")
65+
def case_create_9(self):
66+
inputs = ["foo", "bar"]
67+
request_data = {"foo": "dfg", "data": "asd"}
68+
return inputs, request_data
69+
70+
71+
@pytest.fixture
72+
def validationOff():
73+
# app.config["validation"] = False
74+
yield
75+
# app.config["validation"] = True
76+
77+
78+
@parametrize_with_cases("inputs,request_data", cases=".", prefix="case_create_")
79+
def test_create(inputs, request_data):
80+
pass
81+
82+
83+
def test_synthesis(module_results_dct):
84+
assert list(module_results_dct) == [
85+
'test_create[current_object]',
86+
'test_create[lala]',
87+
'test_create[without_validation]',
88+
'test_create[history_object]',
89+
'test_create[xml_with_namespaces]',
90+
'test_create[duplicate_name]',
91+
'test_create[duplicate_name_without_valid]',
92+
'test_create[not_enough_namespaceses]',
93+
'test_create[invalid_xml]',
94+
'test_create[invalid_xml_without_valid]'
95+
]

0 commit comments

Comments
 (0)