I have a project structure something like this. I want to write a test which programmatically change version variable in myPackage/version.py and write a test in tests/unit/test_release.py.
├── myPackage
│ ├── __init__.py
│ ├── root.py
│ └── version.py
└── tests
└── unit
└── test_release.py
cat myPackage/init.py
from .version import __version__
cat myPackage/root.py
from .version import __version__
def printFunc():
return __version__
if __name__ == "__main__":
print(printFunc())
cat myPackage/version.py
__version__ = '5.7.11'
cat tests/unit/test_release.py
import sys
sys.path.insert(0, "/Users/username/myfolder")
from myPackage import root, version
import unittest
class TestHelp(unittest.TestCase):
def setUp(self):
pass
def test_version(self):
version.__version__ = '7.8.19'
new_version = root.printFunc()
assert new_version == '7.8.19'
What is the best way to do that?