🛎 Test-import all modules 🛎
Project description
🛎 Test-import all modules 🛎
Individually and separately imports each Python module or file in a project and reports warnings or failures at the end.
Running impall as a unit test
Just inherit from the base class and it will automatically find and import each file, like this.
import impall
class ImpAllTest(impall.ImpAllTest):
pass
(You can copy this file into your project if you like.)
Tests are customized by overriding one of these following properties in the derived class.
CLEAR_SYS_MODULES, EXCLUDE, FAILING, INCLUDE, MODULES, PATHS,
RAISE_EXCEPTIONS, and WARNINGS_ACTION.
For example, to turn warnings into errors, set the property WARNINGS_ACTION in the derived class definition, like this.
class ImpAllTest(impall.ImpAllTest):
WARNINGS_ACTION = 'error'
Running impall as a command-line utility
$ impall --warnings_action=error
$ impall -w error
The properties INCLUDE, EXCLUDE, and PROJECT_PATH can be lists of strings, or a string separated with colons like 'foo.mod1:foo.mod2'
INCLUDE and EXCLUDE match modules, and also allow * as a wildcard. A single * matches any module segment, and a double ** matches any remaining segments. For example,
INCLUDE = 'foo', 'bar.*', 'baz.**'
- matches
foo
but notfoo.foo
- matches
bar.foo
but notbar
orbar.foo.bar
- matches
baz.foo
as well asbaz.foo.bar
but notbaz
A note on side-effects
to reduce side-effects, sys.modules
is restored to its original
condition after each import if CLEAR_SYS_MODULES is true, but there might be
other side-effects from loading some specific module.
Use the EXCLUDE property to exclude modules with undesirable side effects. In general, it is probably a bad idea to have significant side-effects just from loading a module.
API Documentation
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
Built Distribution
File details
Details for the file impall-1.5.0.tar.gz
.
File metadata
- Download URL: impall-1.5.0.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.0 CPython/3.10.11 Darwin/21.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 137d600e1841a0ca2d64bcaa618b035243f886751e59d99657e4f6a7b1faca57 |
|
MD5 | 7bbba9324802c947cc42597d4e4f2c81 |
|
BLAKE2b-256 | 013cb70021f1791095a2c06f1cee969d80e8053c471cf2b77746481bbc64cd2f |
File details
Details for the file impall-1.5.0-py3-none-any.whl
.
File metadata
- Download URL: impall-1.5.0-py3-none-any.whl
- Upload date:
- Size: 6.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.0 CPython/3.10.11 Darwin/21.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 053b60b426d147446c47ca172558a00759a6adca8c2ae8447a8ca79fc6ae4dd1 |
|
MD5 | 3249cf8acc1722fb9319ae3f74730eae |
|
BLAKE2b-256 | c8fbdebdbdea4e211bf81cb34741492705c39d3e0565564c32ec64c0cfb8c342 |