Skip to content

Commit 1d870d2

Browse files
committed
Fixed tests to be compliant with pytest 2.x. Fixes #14
1 parent 6ee2e04 commit 1d870d2

File tree

4 files changed

+56
-30
lines changed

4 files changed

+56
-30
lines changed

pytest_cases/tests/advanced/test_memoize.py

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from pytest_cases import cases_data, CaseDataGetter, THIS_MODULE, case_tags
2+
from pytest_cases.tests.utils import nb_pytest_parameters, get_pytest_param
23

34
try: # python 3.2+
45
from functools import lru_cache
@@ -75,17 +76,20 @@ def test_c(case_data # type: CaseDataGetter
7576
def test_assert_parametrized():
7677
"""Asserts that all tests are parametrized with the correct number of cases"""
7778

78-
assert len(test_a.pytestmark) == 1
79-
assert len(test_a.pytestmark[0].args) == 2
80-
assert test_a.pytestmark[0].args[0] == 'case_data'
81-
assert len(test_a.pytestmark[0].args[1]) == 2
82-
83-
assert len(test_b.pytestmark) == 1
84-
assert len(test_b.pytestmark[0].args) == 2
85-
assert test_b.pytestmark[0].args[0] == 'case_data'
86-
assert len(test_b.pytestmark[0].args[1]) == 2
87-
88-
assert len(test_c.pytestmark) == 1
89-
assert len(test_c.pytestmark[0].args) == 2
90-
assert test_c.pytestmark[0].args[0] == 'case_data'
91-
assert len(test_c.pytestmark[0].args[1]) == 3
79+
assert nb_pytest_parameters(test_a) == 1
80+
param_args = get_pytest_param(test_a, 0)
81+
assert len(param_args) == 2
82+
assert param_args[0] == 'case_data'
83+
assert len(param_args[1]) == 2
84+
85+
assert nb_pytest_parameters(test_b) == 1
86+
param_args = get_pytest_param(test_b, 0)
87+
assert len(param_args) == 2
88+
assert param_args[0] == 'case_data'
89+
assert len(param_args[1]) == 2
90+
91+
assert nb_pytest_parameters(test_c) == 1
92+
param_args = get_pytest_param(test_c, 0)
93+
assert len(param_args) == 2
94+
assert param_args[0] == 'case_data'
95+
assert len(param_args[1]) == 3

pytest_cases/tests/advanced/test_memoize_generators.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from pytest_cases import cases_data, THIS_MODULE, cases_generator, CaseDataGetter, extract_cases_from_module
2+
from pytest_cases.tests.utils import nb_pytest_parameters, get_pytest_param
23

34
try: # python 3+: type hints
45
from pytest_cases import CaseData
@@ -46,12 +47,14 @@ def test_assert_cases_are_here():
4647
def test_assert_parametrized():
4748
"""Asserts that test_b is parametrized with the correct number of cases"""
4849

49-
assert len(test_a.pytestmark) == 1
50-
assert len(test_a.pytestmark[0].args) == 2
51-
assert test_a.pytestmark[0].args[0] == 'case_data'
52-
assert len(test_a.pytestmark[0].args[1]) == 3
53-
54-
assert len(test_b.pytestmark) == 1
55-
assert len(test_b.pytestmark[0].args) == 2
56-
assert test_b.pytestmark[0].args[0] == 'case_data'
57-
assert len(test_b.pytestmark[0].args[1]) == 3
50+
assert nb_pytest_parameters(test_a) == 1
51+
param_args = get_pytest_param(test_a, 0)
52+
assert len(param_args) == 2
53+
assert param_args[0] == 'case_data'
54+
assert len(param_args[1]) == 3
55+
56+
assert nb_pytest_parameters(test_b) == 1
57+
param_args = get_pytest_param(test_b, 0)
58+
assert len(param_args) == 2
59+
assert param_args[0] == 'case_data'
60+
assert len(param_args[1]) == 3

pytest_cases/tests/advanced/test_parameters.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import pytest
22

33
from pytest_cases.tests.example_code import super_function_i_want_to_test
4+
from pytest_cases.tests.utils import nb_pytest_parameters, get_pytest_param
45

56
from pytest_cases import cases_data, CaseDataGetter, THIS_MODULE, cases_generator
67
try:
@@ -57,12 +58,14 @@ def test_with_parameters(case_data, # type: CaseDataGetter
5758
def test_assert_parametrized():
5859
"""Asserts that all tests are parametrized with the correct number of cases"""
5960

60-
assert len(test_with_parameters.pytestmark) == 2
61+
assert nb_pytest_parameters(test_with_parameters) == 2
6162

62-
assert len(test_with_parameters.pytestmark[0].args) == 2
63-
assert test_with_parameters.pytestmark[0].args[0] == 'version'
64-
assert len(test_with_parameters.pytestmark[0].args[1]) == 2
63+
param_args = get_pytest_param(test_with_parameters, 0)
64+
assert len(param_args) == 2
65+
assert param_args[0] == 'version'
66+
assert len(param_args[1]) == 2
6567

66-
assert len(test_with_parameters.pytestmark[1].args) == 2
67-
assert test_with_parameters.pytestmark[1].args[0] == 'case_data'
68-
assert len(test_with_parameters.pytestmark[1].args[1]) == 1 + 1 + 2 * 2
68+
param_args = get_pytest_param(test_with_parameters, 1)
69+
assert len(param_args) == 2
70+
assert param_args[0] == 'case_data'
71+
assert len(param_args[1]) == 1 + 1 + 2 * 2

pytest_cases/tests/utils.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
def nb_pytest_parameters(f):
2+
try:
3+
# new pytest
4+
return len(f.pytestmark)
5+
except AttributeError:
6+
# old pytest
7+
return len(f.parametrize.args) / 2
8+
9+
10+
def get_pytest_param(f, i):
11+
try:
12+
# new pytest
13+
return f.pytestmark[i].args
14+
except AttributeError:
15+
# old pytest
16+
return f.parametrize.args[2*i:2*(i+1)]

0 commit comments

Comments
 (0)