Metadata-Version: 2.1
Name: aiida-pytest
Version: 0.1.0a8
Summary: A module to simplify using pytest for AiiDA plugins.
Home-page: UNKNOWN
Author: Dominik Gresch
Author-email: greschd@gmx.ch
License: Apache 2.0
Description: **NOTE:** The ``aiida-pytest`` package is in maintenance mode: bugs will continue to be fixed for the foreseeable future, but no new features will be implemented. Users considering using ``aiida-pytest`` are **strongly** encouraged to use the built-in AiiDA fixtures instead.
        
        # aiida-pytest
        
        This is a helper to enable testing AiiDA plugins with ``pytest``. The main purpose is to create a fixture which sets up a temporary AiiDA database and user, and simplify setting up the computers and calculations.
        
        To get started, create a ``tests`` folder where your ``pytest`` tests will be located. In ``conftests.py``, you need to write
        
        ```python
        from aiida_pytest import *
        ```
        
        This defines the ``configure`` and ``configure_with_daemon`` fixtures. To set up computers and codes for the test run, you need a ``config.yml`` file in the ``tests`` folder (and run ``pytest`` from there). The following example config file sets up ``localhost`` and the ``bands-inspect`` code:
        
        ```
        computers:
          localhost:
            hostname: localhost
            description: localhost
            transport: local
            scheduler: direct
            work_directory: /tmp/test_aiida
            prepend_text: 'unset PYTHONPATH'
        
        codes:
          bands_inspect:
            description: bands_inspect code
            default_plugin: bands_inspect.difference
            remote_computer: localhost
            remote_abspath: /home/a-dogres/.virtualenvs/bands-inspect/bin/bands-inspect
        ```
        
        **Note:** ``aiida-pytest`` is not compatible with the ``aiida-xdist`` plugin, since the fixtures with ``scope=session`` are then called for each running worker.
        
        ## Defining and running tests
        
        Tests with ``aiida-pytest`` are defined and run exactly like "regular" ``pytest`` tests. If a test needs the AiiDA database, it should use the ``configure`` fixture. If the test also requires the Daemon to run, it should use the ``configure_with_daemon`` fixture. Note that, since certain AiiDA import statements require the database backend to be set, these imports should be done **inside** the test function.
        
        After the tests have run, the code will wait for you to press ``Enter`` before deleting the testing database and repository. This gives you the opportunity to manually inspect the final state. If you want to avoid this step (for example in a CI system), pass the ``--quiet-wipe`` flag to ``py.test``.
        
Keywords: pytest aiida workflows
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Plugins
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Software Development :: Testing
Classifier: Framework :: Pytest
Classifier: Framework :: AiiDA
Requires-Python: >=3.6
Description-Content-Type: text/markdown
