I have a pretty big Python package I've written, about 3500 statements, with a robust unit and acceptance test suite. I feel quite confident about the quality of the code itself, but I'm uneasy about the install process going smoothly for users of the package as I don't know how to reliably test the install in an appropriately isolated environment, short of something like keeping a spare machine around and re-imaging it with a fresh OS install for each test run.
I suspect using virtualenv in the right way might provide a proper test fixture for testing installation, but after extended web searches have uncovered no helpful guidance.
How can I effectively test my setup.py and other installation bits on my development machine?
If you like tools ( which I do ) check out fabric and the set of Fabric tasks I've written across all my projects:
This should work for just about any Python project and utilizes:
Some basic workflows:
fab build # build the package in non-development mode
fab develop # build the package in development mode
fab docs # build/regenerate the documentation
fab test # run tie unit test suite
fab release # run through a tested release cycle
Type: fab -l
for a list of commands and fab help:<name>
for help on any command.
Update: Recently we added fab docker
commands to work with Docker
fab docker:build # Build a Docker image
fab docker:publish # Publish Docker image to the Docker Hub
fab docker:run # Run a new Docker container
If you really want isolation instead just doing python setup.py install
in virtualenv. Then use virtualbox and install some free linux os in it. Take a snapshot of the machine after the install so you can revert easily with one click to the starting point at any time and try python setup.py install
there.
I think basic tox
config does this job automatically.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.