A goodie-bag of unix shell and environment tools for py.test
Project description
This library is a goodie-bag of Unix shell and environment management tools for automated tests. A summary of the available functions is below, look at the source for the full listing.
Installation
Install using your favourite package manager:
.. code:: bash
pip install pytest-shutil # or.. easy_install pytest-shutil
Workspace Fixture
The workspace fixture is simply a temporary directory at function-scope with a few bells and whistles:
.. code:: python
# Enable the fixture explicitly in your tests or conftest.py (not required when using setuptools entry points) pytest_plugins = [‘pytest_shutil’]
- def test_something(workspace):
# Workspaces contain a handle to the path.py path object (see https://pythonhosted.org/path.py) path = workspace.workspace script = path / ‘hello.sh’ script.write_text(‘#!/bin/shn echo hello world!’)
# There is a ‘run’ method to execute things relative to the workspace root workspace.run(‘hello.sh’)
pytest_shutil.env: Shell helpers
function |
description |
---|---|
set_env |
contextmanager to set env vars |
unset_env |
contextmanager to unset env vars |
no_env |
contextmanager to unset a single env var |
no_cov |
contextmanager to disable coverage in subprocesses |
pytest_shutil.cmdline: Command-line helpers
function |
description |
---|---|
umask |
contextmanager to set the umask |
chdir |
contextmanager to change to a directory |
TempDir |
contextmanager for a temporary directory |
PrettyFormatter |
simple text formatter for drawing title, paragrahs, hrs. |
copy_files |
copy all files from one directory to another |
getch |
cross-platform read of a single character from the screen |
which |
analoge of unix which |
get_real_python_executable |
find our system Python, useful when running under virtualenv |
pytest_shutil.run: Running things in subprocesses
function |
description |
---|---|
run |
run a command, with options for capturing output, checking return codes. |
run_as_main |
run a function as if it was the system entry point |
run_module_as_main |
run a module as if it was the system entry point |
run_in_subprocess |
run a function in a subprocess |
run_with_coverage |
run a command with coverage enabled |
Changelog
1.1.0 (2016-2-15)
New plugin: devpi server fixture
pytest-profiling improvement: overly-long .prof files are saved as the short hash of the test name (Thanks to Vladimir Lagunov for PR)
Changed default behavior of workspace.run() to not use a subshell for security reasons
Corrected virtualenv.run() method to handle arguments the same as the parent method workspace.run()
Removed deprecated ‘–distribute’ from virtualenv args
1.0.1 (2015-12-23)
Packaging bugfix
1.0.0 (2015-12-21)
Initial public release
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 Distributions
Hashes for pytest_shutil-1.1.0-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b11fc5563b8606e45f4c3ff26bededd673899de123f4f8b3fb0896468a695148 |
|
MD5 | 67539e215d2b28bd2dcb248ee0ec84ac |
|
BLAKE2b-256 | c51ef89b732214770dff8c655f40161a3fb24327f2c3f51aae2eb689b99963ad |