1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
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`_ , `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
|