osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Why not being able to call modules from lib folder into test folder although I have __init__.py file both?


I am not able to call modules from lib folder in my test folder, but outside of tests folder I can access them. How should I fix this?

Mocks$ tree .
.
??? lib
?   ??? __init__.py
?   ??? __pycache__
?   ?   ??? __init__.cpython-37.pyc
?   ?   ??? product.cpython-37.pyc
?   ??? product.py
??? tests
    ??? __init__.py
    ??? product_test.py

3 directories, 6 files
Mocks$ python3
Python 3.7.3 (default, Mar 27 2019, 09:23:15) 
[Clang 10.0.1 (clang-1001.0.46.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from lib.product import ProductionKlass
>>> ProductionKlass()
<lib.product.ProductionKlass object at 0x10d5f2128>
>>> exit()
Mocks$ python3 tests/product_test.py 
Traceback (most recent call last):
  File "tests/product_test.py", line 4, in <module>
    from lib.product import ProductionKlass
ModuleNotFoundError: No module named 'lib'
Mocks$ 

The file product_test.py has content like:

from unittest import mock
import unittest

from lib.product import ProductionKlass

class TesProductKlass(unittest.TestCase):
    def setUp(self):
        self.real = ProductionKlass()
        self.real.something = mock.MagicMock()
        
    def test_method(self):
        self.real.method()
        self.real.something.assert_called_once_with(1, 2, 3)

if __file__ == "__main__":
    unittest.main()
    


Thanks,

Arup Rakshit
ar at zeit.io