mirror of
https://github.com/saymrwulf/cryptography.git
synced 2026-05-14 20:37:55 +00:00
89 lines
2.7 KiB
ReStructuredText
89 lines
2.7 KiB
ReStructuredText
Getting started
|
|
===============
|
|
|
|
Working on ``cryptography`` requires the installation of a small number of
|
|
development dependencies. These are listed in ``dev-requirements.txt`` and they
|
|
can be installed in a `virtualenv`_ using `pip`_. Once you've installed the
|
|
dependencies, install ``cryptography`` in ``editable`` mode. For example:
|
|
|
|
.. code-block:: console
|
|
|
|
$ # Create a virtualenv and activate it
|
|
$ pip install --requirement dev-requirements.txt
|
|
$ pip install --editable .
|
|
|
|
You are now ready to run the tests and build the documentation.
|
|
|
|
Running tests
|
|
~~~~~~~~~~~~~
|
|
|
|
``cryptography`` unit tests are found in the ``tests/`` directory and are
|
|
designed to be run using `pytest`_. `pytest`_ will discover the tests
|
|
automatically, so all you have to do is:
|
|
|
|
.. code-block:: console
|
|
|
|
$ py.test
|
|
...
|
|
62746 passed in 220.43 seconds
|
|
|
|
This runs the tests with the default Python interpreter.
|
|
|
|
You can also verify that the tests pass on other supported Python interpreters.
|
|
For this we use `tox`_, which will automatically create a `virtualenv`_ for
|
|
each supported Python version and run the tests. For example:
|
|
|
|
.. code-block:: console
|
|
|
|
$ tox
|
|
...
|
|
ERROR: py26: InterpreterNotFound: python2.6
|
|
py27: commands succeeded
|
|
ERROR: pypy: InterpreterNotFound: pypy
|
|
ERROR: py32: InterpreterNotFound: python3.2
|
|
py33: commands succeeded
|
|
docs: commands succeeded
|
|
pep8: commands succeeded
|
|
|
|
You may not have all the required Python versions installed, in which case you
|
|
will see one or more ``InterpreterNotFound`` errors.
|
|
|
|
|
|
Explicit backend selection
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
While testing you may want to run tests against a subset of the backends that
|
|
cryptography supports. Explicit backend selection can be done via the
|
|
``--backend`` flag. This flag should be passed to ``py.test`` with a comma
|
|
delimited list of backend names.
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
$ tox -- --backend=openssl
|
|
$ py.test --backend=openssl,commoncrypto
|
|
|
|
Building documentation
|
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
``cryptography`` documentation is stored in the ``docs/`` directory. It is
|
|
written in `reStructured Text`_ and rendered using `Sphinx`_.
|
|
|
|
Use `tox`_ to build the documentation. For example:
|
|
|
|
.. code-block:: console
|
|
|
|
$ tox -e docs
|
|
...
|
|
docs: commands succeeded
|
|
congratulations :)
|
|
|
|
The HTML documentation index can now be found at
|
|
``docs/_build/html/index.html``.
|
|
|
|
.. _`pytest`: https://pypi.python.org/pypi/pytest
|
|
.. _`tox`: https://pypi.python.org/pypi/tox
|
|
.. _`virtualenv`: https://pypi.python.org/pypi/virtualenv
|
|
.. _`pip`: https://pypi.python.org/pypi/pip
|
|
.. _`sphinx`: https://pypi.python.org/pypi/Sphinx
|
|
.. _`reStructured Text`: http://sphinx-doc.org/rest.html
|