wolever / parameterized

Parameterized testing with any Python test framework
Other
833 stars 105 forks source link

error: AttributeError: module 'mock' has no attribute 'version_info' #170

Closed dinager closed 1 year ago

dinager commented 1 year ago

I get the following error when using parameterized:

E   AttributeError: module 'mock' has no attribute 'version_info'

full log:

my-project/venv2/bin/python /Applications/PyCharm.app/Contents/plugins/python/helpers/pycharm/_jb_pytest_runner.py --target login_test.py::MyTest
Testing started at 12:17 ...
Launching pytest with arguments login_test.py::MyTest --no-header --no-summary -q in my-project/tests/login

============================= test session starts ==============================
collecting ... 
tests/login_test.py:None 
    from parameterized import parameterized_class
../../../../venv2/lib/python3.7/site-packages/parameterized/__init__.py:1: in <module>
    from .parameterized import parameterized, param, parameterized_class
../../../../venv2/lib/python3.7/site-packages/parameterized/parameterized.py:135: in <module>
    MOCK_BACKPORT_DOESNT_HAVE_FIX_FOR_BPO_40126 = _mock_backport is not None and _mock_backport.version_info[0] < 4
E   AttributeError: module 'mock' has no attribute 'version_info'

collected 0 items / 1 error
ERROR: not found: ../../login_test.py::MyTest

=============================== 1 error in 0.75s ===============================
(no name 'my_project/tests/login_test.py::MyTest' in any of [<Module single_browsing_test.py>])

Process finished with exit code 4

here is my code:

import unittest2
from parameterized import parameterized_class

@parameterized_class(('username'), [
   ('jim'),
   ('bob')
])
class MyTest(unittest2.TestCase):
    def setUp(self) -> None:
        some_setup(self.username)

    def TestLogin(self):
        assert_something(self.username)

python version: Python 3.7.16 other:

pytest==6.2.4
parameterized==0.9.0
mock==1.0.1
dinager commented 1 year ago

solved by updating mock dep to latest version