Easily test both Python and C versions of modules.
Project description
When you write a C extension, you can provide a Python version as a backup. A problem with this is that only one of these modules will be tested, while the other is neglected.
DualTest provides a class that, when inherited from, imports a list of modules and attributes from modules and makes them available as globals during tests. Allowing you to easily test both versions of a module and write just one set of tests.
Usage
Create a test case class derived from DualTestCase and set the import_names or import_from_names class attributes.
import_names should be set to a list of the names of modules with Python source and C extension versions to import:
class ImportTestCase(DualTestCase):
import_names = ['mod1', 'mod2']
def test_something(self):
# mod1 and mod2 will be available here.
import_from_names causes attributes to be imported from modules just like from module import attribute would. It should be set to a list of tuples containing the name of the module to import from, and a list of attribute names to import. If one of the attribute names is “*”, then all public attributes are imported:
class ImportFromTestCase(DualTestCase):
import_from_names = [
('mod1', ['attr1', 'attr2']),
# "*" causes all public attributes to be imported.
('mod2', ['*']),
]
def test_something(self):
# attr1, attr2 and everything from mod2 will be available here.
Full Example
from dualtest import DualTestCase
class ImportTestCase(DualTestCase):
import_names = ['mod1', 'mod2']
def test_something(self):
# mod1 and mod2 will be available here.
class ImportFromTestCase(DualTestCase):
import_from_names = [
('mod1', ['attr1', 'attr2']),
# "*" causes all public attributes to be imported.
('mod2', ['*']),
]
def test_something(self):
# attr1, attr2 and everything from mod2 will be available here.
Changelog
1.0.1
Patch imported modules into “sys.modules” during tests.
Fix error when “import_from_names” references a non-existing module.
Fix bug when importing ‘*’ from a module.
Add module type context when “subTest” is called.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file dualtest-1.0.1.tar.gz.
File metadata
- Download URL: dualtest-1.0.1.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a6429c0946f936d7a5cdf74681a36fe0630bce0edde9cf1ce2764db4d827d3ca
|
|
| MD5 |
ff419a71afee1118e7d751ebfddd731a
|
|
| BLAKE2b-256 |
7f1ccebe9c8ab0303d7fd6af6ecce3c846bc09073056cc3a8f5d79dc7ced9d36
|