Skip to content

Commit

Permalink
Fixed tests to be compliant with pytest 2.x. Fixes #14
Browse files Browse the repository at this point in the history
  • Loading branch information
smarie committed Nov 21, 2018
1 parent 6ee2e04 commit 1d870d2
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 30 deletions.
32 changes: 18 additions & 14 deletions pytest_cases/tests/advanced/test_memoize.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from pytest_cases import cases_data, CaseDataGetter, THIS_MODULE, case_tags
from pytest_cases.tests.utils import nb_pytest_parameters, get_pytest_param

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

assert len(test_a.pytestmark) == 1
assert len(test_a.pytestmark[0].args) == 2
assert test_a.pytestmark[0].args[0] == 'case_data'
assert len(test_a.pytestmark[0].args[1]) == 2

assert len(test_b.pytestmark) == 1
assert len(test_b.pytestmark[0].args) == 2
assert test_b.pytestmark[0].args[0] == 'case_data'
assert len(test_b.pytestmark[0].args[1]) == 2

assert len(test_c.pytestmark) == 1
assert len(test_c.pytestmark[0].args) == 2
assert test_c.pytestmark[0].args[0] == 'case_data'
assert len(test_c.pytestmark[0].args[1]) == 3
assert nb_pytest_parameters(test_a) == 1
param_args = get_pytest_param(test_a, 0)
assert len(param_args) == 2
assert param_args[0] == 'case_data'
assert len(param_args[1]) == 2

assert nb_pytest_parameters(test_b) == 1
param_args = get_pytest_param(test_b, 0)
assert len(param_args) == 2
assert param_args[0] == 'case_data'
assert len(param_args[1]) == 2

assert nb_pytest_parameters(test_c) == 1
param_args = get_pytest_param(test_c, 0)
assert len(param_args) == 2
assert param_args[0] == 'case_data'
assert len(param_args[1]) == 3
21 changes: 12 additions & 9 deletions pytest_cases/tests/advanced/test_memoize_generators.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from pytest_cases import cases_data, THIS_MODULE, cases_generator, CaseDataGetter, extract_cases_from_module
from pytest_cases.tests.utils import nb_pytest_parameters, get_pytest_param

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

assert len(test_a.pytestmark) == 1
assert len(test_a.pytestmark[0].args) == 2
assert test_a.pytestmark[0].args[0] == 'case_data'
assert len(test_a.pytestmark[0].args[1]) == 3

assert len(test_b.pytestmark) == 1
assert len(test_b.pytestmark[0].args) == 2
assert test_b.pytestmark[0].args[0] == 'case_data'
assert len(test_b.pytestmark[0].args[1]) == 3
assert nb_pytest_parameters(test_a) == 1
param_args = get_pytest_param(test_a, 0)
assert len(param_args) == 2
assert param_args[0] == 'case_data'
assert len(param_args[1]) == 3

assert nb_pytest_parameters(test_b) == 1
param_args = get_pytest_param(test_b, 0)
assert len(param_args) == 2
assert param_args[0] == 'case_data'
assert len(param_args[1]) == 3
17 changes: 10 additions & 7 deletions pytest_cases/tests/advanced/test_parameters.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import pytest

from pytest_cases.tests.example_code import super_function_i_want_to_test
from pytest_cases.tests.utils import nb_pytest_parameters, get_pytest_param

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

assert len(test_with_parameters.pytestmark) == 2
assert nb_pytest_parameters(test_with_parameters) == 2

assert len(test_with_parameters.pytestmark[0].args) == 2
assert test_with_parameters.pytestmark[0].args[0] == 'version'
assert len(test_with_parameters.pytestmark[0].args[1]) == 2
param_args = get_pytest_param(test_with_parameters, 0)
assert len(param_args) == 2
assert param_args[0] == 'version'
assert len(param_args[1]) == 2

assert len(test_with_parameters.pytestmark[1].args) == 2
assert test_with_parameters.pytestmark[1].args[0] == 'case_data'
assert len(test_with_parameters.pytestmark[1].args[1]) == 1 + 1 + 2 * 2
param_args = get_pytest_param(test_with_parameters, 1)
assert len(param_args) == 2
assert param_args[0] == 'case_data'
assert len(param_args[1]) == 1 + 1 + 2 * 2
16 changes: 16 additions & 0 deletions pytest_cases/tests/utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
def nb_pytest_parameters(f):
try:
# new pytest
return len(f.pytestmark)
except AttributeError:
# old pytest
return len(f.parametrize.args) / 2


def get_pytest_param(f, i):
try:
# new pytest
return f.pytestmark[i].args
except AttributeError:
# old pytest
return f.parametrize.args[2*i:2*(i+1)]

0 comments on commit 1d870d2

Please sign in to comment.