| Getting started |
| =============== |
| |
| Development dependencies |
| ------------------------ |
| |
| Working on ``cryptography`` requires the installation of a small number of |
| development dependencies in addition to the dependencies for |
| :doc:`/installation` (including :ref:`Rust<installation:rust>`). These are |
| handled by the use of ``nox``, which can be installed with ``pip``. |
| |
| .. code-block:: console |
| |
| $ # Create a virtualenv and activate it |
| $ # Set up your cryptography build environment |
| $ pip install nox |
| $ nox -e local |
| |
| OpenSSL on macOS |
| ~~~~~~~~~~~~~~~~ |
| |
| You must have installed `OpenSSL`_ (via `Homebrew`_ or `MacPorts`_) before |
| invoking ``nox`` or else pip will fail to compile. |
| |
| Running tests |
| ------------- |
| |
| ``cryptography`` unit tests are found in the ``tests/`` directory and are |
| designed to be run using `pytest`_. ``nox`` automatically invokes ``pytest`` |
| and other required checks for ``cryptography``: |
| |
| .. code-block:: console |
| |
| $ nox -e local |
| |
| |
| You can also specify a subset of tests to run as positional arguments: |
| |
| .. code-block:: console |
| |
| $ # run the whole x509 testsuite, plus the fernet tests |
| $ nox -e local -- tests/x509/ tests/test_fernet.py |
| |
| Building the docs |
| ----------------- |
| |
| Building the docs on non-Windows platforms requires manually installing |
| the C library ``libenchant`` (`installation instructions`_). |
| The docs can be built using ``nox``: |
| |
| .. code-block:: console |
| |
| $ nox -e docs |
| |
| |
| .. _`Homebrew`: https://brew.sh |
| .. _`MacPorts`: https://www.macports.org |
| .. _`OpenSSL`: https://www.openssl.org |
| .. _`pytest`: https://pypi.org/project/pytest/ |
| .. _`nox`: https://pypi.org/project/nox/ |
| .. _`virtualenv`: https://pypi.org/project/virtualenv/ |
| .. _`pip`: https://pypi.org/project/pip/ |
| .. _`as documented here`: https://docs.rs/openssl/latest/openssl/#automatic |
| .. _`installation instructions`: https://pyenchant.github.io/pyenchant/install.html#installing-the-enchant-c-library |