Skip to main content

🛎 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.py --warnings_action=error
$ impall.py -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 not foo.foo
  • matches bar.foo but not bar or bar.foo.bar
  • matches baz.foo as well as baz.foo.bar but not baz

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

impall-1.4.0.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

impall-1.4.0-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file impall-1.4.0.tar.gz.

File metadata

  • Download URL: impall-1.4.0.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.0 CPython/3.10.9 Darwin/21.6.0

File hashes

Hashes for impall-1.4.0.tar.gz
Algorithm Hash digest
SHA256 42d3ccf2cb408d7da99fb315bcd316ae60f56d8395b0887b30ae34715e4ad1eb
MD5 464558a875b3cdde6e91c8ee1f2ca6ae
BLAKE2b-256 3e069888feac87f12f4a3156c044e16b308b22f4a7b636d0b6fd76b833260547

See more details on using hashes here.

File details

Details for the file impall-1.4.0-py3-none-any.whl.

File metadata

  • Download URL: impall-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.0 CPython/3.10.9 Darwin/21.6.0

File hashes

Hashes for impall-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b830a6350934bcda08db706f8d8beb9e3cb9b1cc5aefd7c448b6a63a425641b9
MD5 f13faf0846aa702a27b2c73d757966b4
BLAKE2b-256 ec58f96b646c814f2935ea0ba8bbec1c3dce4df3796a243bd145523d18e85b5f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page