Metadata-Version: 1.1
Name: pytest-shutil
Version: 1.2.11
Summary: A goodie-bag of unix shell and environment tools for py.test
Home-page: https://github.com/manahl/pytest-plugins
Author: Edward Easton
Author-email: eeaston@gmail.com
License: MIT license
Description: pytest-shutil
        =============
        
        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/sh\n 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      | contextmanag |
        |            | er           |
        |            | to set the   |
        |            | umask        |
        +------------+--------------+
        | chdir      | contextmanag |
        |            | er           |
        |            | to change to |
        |            | a directory  |
        +------------+--------------+
        | TempDir    | contextmanag |
        |            | er           |
        |            | for a        |
        |            | temporary    |
        |            | directory    |
        +------------+--------------+
        | PrettyForm | simple text  |
        | atter      | formatter    |
        |            | for drawing  |
        |            | title,       |
        |            | paragrahs,   |
        |            | hrs.         |
        +------------+--------------+
        | copy\_file | copy all     |
        | s          | files from   |
        |            | one          |
        |            | directory to |
        |            | another      |
        +------------+--------------+
        | getch      | cross-platfo |
        |            | rm           |
        |            | read of a    |
        |            | single       |
        |            | character    |
        |            | from the     |
        |            | screen       |
        +------------+--------------+
        | which      | analoge of   |
        |            | unix         |
        |            | ``which``    |
        +------------+--------------+
        | get\_real\ | find our     |
        | _python\_e | system       |
        | xecutable  | 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\_m | run a        |
        | ain        | function as  |
        |            | if it was    |
        |            | the system   |
        |            | entry point  |
        +------------+--------------+
        | run\_modul | run a module |
        | e\_as\_mai | as if it was |
        | n          | the system   |
        |            | entry point  |
        +------------+--------------+
        | run\_in\_s | run a        |
        | ubprocess  | function in  |
        |            | a subprocess |
        +------------+--------------+
        | run\_with\ | run a        |
        | _coverage  | command with |
        |            | coverage     |
        |            | enabled      |
        +------------+--------------+
        
        Changelog
        ---------
        
        1.2.11 (2017-7-21)
        ~~~~~~~~~~~~~~~~~~
        
        -  Fix for OSX binding to illegal local IP range (Thanks to Gavin
           Bisesi)
        -  Setup and Py3k fixes for pytest-profiling (Thanks to xoviat)
        -  We no longer try and bind port 5000 when reserving a local IP host,
           as someone could have bound it to 0.0.0.0
        -  Fix for #46 sourcing gprof2dot when the local venv has not been
           activated
        
        1.2.10 (2017-2-23)
        ~~~~~~~~~~~~~~~~~~
        
        -  Handle custom Pytest test items in pytest-webdriver
        
        1.2.9 (2017-2-23)
        ~~~~~~~~~~~~~~~~~
        
        -  Add username into mongo server fixture tempdir path to stop
           collisions on shared multiuser filesystems
        
        1.2.8 (2017-2-21)
        ~~~~~~~~~~~~~~~~~
        
        -  Return function results in shutil.run.run\_as\_main
        
        1.2.7 (2017-2-20)
        ~~~~~~~~~~~~~~~~~
        
        -  More handling for older versions of path.py
        -  Allow virtualenv argument passing in pytest-virtualenv
        
        1.2.6 (2017-2-16 )
        ~~~~~~~~~~~~~~~~~~
        
        -  Updated devpi server server setup for devpi-server >= 2.0
        -  Improvements for random port picking
        -  HTTPD server now binds to 0.0.0.0 by default to aid Selenium-style
           testing
        -  Updated mongodb server args for mongodb >= 3.2
        -  Corrections for mongodb fixture config and improve startup logic
        -  Added module-scoped mongodb fixture
        -  Handling for older versions of path.py
        -  Fix for #40 where tests that chdir break pytest-profiling
        
        1.2.5 (2016-12-09)
        ~~~~~~~~~~~~~~~~~~
        
        -  Improvements for server runner host and port generation, now supports
           random local IPs
        -  Bugfix for RethinkDB fixture config
        
        1.2.4 (2016-11-14)
        ~~~~~~~~~~~~~~~~~~
        
        -  Bugfix for pymongo extra dependency
        -  Windows compatibility fix for pytest-virtualenv (Thanks to
           Jean-Christophe Fillion-Robin for PR)
        -  Fix symlink handling for
           pytest-shutil.cmdline.get\_real\_python\_executable
        
        1.2.3 (2016-11-7)
        ~~~~~~~~~~~~~~~~~
        
        -  Improve resiliency of Mongo fixture startup checks
        
        1.2.2 (2016-10-27)
        ~~~~~~~~~~~~~~~~~~
        
        -  Python 3 compatibility across most of the modules
        -  Fixed deprecated Path.py imports (Thanks to Bryan Moscon)
        -  Fixed deprecated multicall in pytest-profiling (Thanks to Paul van
           der Linden for PR)
        -  Added devpi-server fixture to create an index per test function
        -  Added missing licence file
        -  Split up httpd server fixture config so child classes can override
           loaded modules easier
        -  Added 'preserve\_sys\_path' argument to TestServer base class which
           exports the current python sys.path to subprocesses.
        -  Updated httpd, redis and jenkins runtime args and paths to current
           Ubuntu spec
        -  Ignore errors when tearing down workspaces to avoid race conditions
           in 'shutil.rmtree' implementation
        
        1.2.1 (2016-3-1)
        ~~~~~~~~~~~~~~~~
        
        -  Fixed pytest-verbose-parametrize for latest version of py.test
        
        1.2.0 (2016-2-19)
        ~~~~~~~~~~~~~~~~~
        
        -  New plugin: git repository fixture
        
        1.1.1 (2016-2-16)
        ~~~~~~~~~~~~~~~~~
        
        -  pytest-profiling improvement: escape illegal characters in .prof
           files (Thanks to Aarni Koskela for the PR)
        
        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
        
Platform: unix
Platform: linux
Classifier: License :: OSI Approved :: MIT License
Classifier: Development Status :: 5 - Production/Stable
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Utilities
Classifier: Intended Audience :: Developers
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
