Skip to content

Various cross-references in tests and installation advice #862

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Dec 3, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docs/scenarios/ci.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ Continuous Integration

.. image:: https://farm5.staticflickr.com/4173/33907150594_9abba7ad0a_k_d.jpg

.. note::
For advice on writing your tests, see :doc:`writing/tests`.

Why?
----

Expand Down
3 changes: 3 additions & 0 deletions docs/starting/install/linux.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ Installing Python 2 on Linux

.. image:: https://farm5.staticflickr.com/4268/34435688560_4cc2a7bcbb_k_d.jpg

.. note::
Check out our :ref:`guide for installing Python 3 on Linux<install3-linux>`.

The latest versions of CentOS, Red Hat Enterprise Linux (RHEL) and Ubuntu
**come with Python 2.7 out of the box**.

Expand Down
29 changes: 15 additions & 14 deletions docs/starting/install/win.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ Installing Python 2 on Windows

.. image:: https://farm5.staticflickr.com/4268/34435688560_4cc2a7bcbb_k_d.jpg

.. note::
Check out our :ref:`guide for installing Python 3 on Windows<install3-windows>`.

First, download the `latest version <https://www.python.org/ftp/python/2.7.14/python-2.7.14.msi>`_
of Python 2.7 from the official website. If you want to be sure you are installing a fully
up-to-date version, click the Downloads > Windows link from the home page of the
Expand Down Expand Up @@ -50,24 +53,22 @@ makes it much easier for you to use other third-party Python libraries.
Setuptools + Pip
----------------

The most crucial third-party Python software of all is Setuptools, which
extends the packaging and installation facilities provided by the distutils in
the standard library. Once you add Setuptools to your Python system you can
download and install any compliant Python software product with a single
command. It also enables you to add this network installation capability to
your own Python software with very little work.
The two most crucial third-party Python packages are `setuptools <https://pypi.python.org/pypi/setuptools>`_ and `pip <https://pip.pypa.io/en/stable/>`_.

Once installed, you can download, install and uninstall any compliant Python software
product with a single command. It also enables you to add this network installation
capability to your own Python software with very little work.

To obtain the latest version of Setuptools for Windows, run the Python script
available here: `ez_setup.py <https://bootstrap.pypa.io/ez_setup.py>`_
Python 2.7.9 and later (on the python2 series), and Python 3.4 and later include
pip by default.

To see if pip is installed, open a command prompt and run

.. code-block:: console

You'll now have a new command available to you: **easy_install**. It is
considered by many to be deprecated, so we will install its replacement:
**pip**. Pip allows for uninstallation of packages, and is actively maintained,
unlike easy_install.
$ command -v pip

To install pip, run the Python script available here:
`get-pip.py <https://raw.github.com/pypa/pip/master/contrib/get-pip.py>`_
To install pip, `follow the official pip installation guide <https://pip.pypa.io/en/latest/installing/>`_ - this will automatically install the latest version of setuptools.


Virtual Environments
Expand Down
22 changes: 6 additions & 16 deletions docs/starting/install3/win.rst
Original file line number Diff line number Diff line change
Expand Up @@ -64,24 +64,14 @@ This will launch the Python 3 interpreter.
Setuptools + Pip
----------------

The most crucial third-party Python software of all is Setuptools, which
extends the packaging and installation facilities provided by the distutils in
the standard library. Once you add Setuptools to your Python system you can
download and install any compliant Python software product with a single
command. It also enables you to add this network installation capability to
your own Python software with very little work.
The two most crucial third-party Python packages are `setuptools <https://pypi.python.org/pypi/setuptools>`_ and `pip <https://pip.pypa.io/en/stable/>`_,
which let you download, install and uninstall any compliant Python software
product with a single command. It also enables you to add this network installation
capability to your own Python software with very little work.

To obtain the latest version of Setuptools for Windows, run the Python script
available here: `ez_setup.py <https://bootstrap.pypa.io/ez_setup.py>`_
All supported versions of Python 3 include pip, so just make sure it's up to date::


You'll now have a new command available to you: **easy_install**. It is
considered by many to be deprecated, so we will install its replacement:
**pip**. Pip allows for uninstallation of packages, and is actively maintained,
unlike easy_install.

To install pip, run the Python script available here:
`get-pip.py <https://raw.github.com/pypa/pip/master/contrib/get-pip.py>`_
python -m pip install -U pip


Pipenv & Virtual Environments
Expand Down
4 changes: 2 additions & 2 deletions docs/starting/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ Installation Guides
These guides go over the proper installation of :ref:`Python <which-python>`
for development purposes, as well as setuptools, pip and virtualenv.

Python 3 Installation Guides
////////////////////////////
Python 3 Installation Guides
////////////////////////////

- :ref:`Python 3 on MacOS <install3-osx>`.
- :ref:`Python 3 on Windows <install3-windows>`.
Expand Down
4 changes: 3 additions & 1 deletion docs/starting/which-python.rst
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,9 @@ It is possible to `write code that works on Python 2.6, 2.7, and Python 3
<https://docs.python.org/3/howto/pyporting.html>`_. This
ranges from trivial to hard depending upon the kind of software
you are writing; if you're a beginner there are far more important things to
worry about.
worry about. Note that Python 2.6 is end-of-life upstream, so you shouldn't
try to write 2.6-compatible code unless you're being paid specifically to
do that.

Implementations
~~~~~~~~~~~~~~~
Expand Down
2 changes: 2 additions & 0 deletions docs/writing/structure.rst
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,8 @@ Test Suite
::::::::::


*For advice on writing your tests, see :doc:`writing/tests`.*

.. csv-table::
:widths: 20, 40

Expand Down
35 changes: 26 additions & 9 deletions docs/writing/tests.rst
Original file line number Diff line number Diff line change
Expand Up @@ -190,21 +190,38 @@ the unittest module!
`py.test <https://docs.pytest.org/en/latest/>`_


Nose
----

nose extends unittest to make testing easier.
Hypothesis
----------

Hypothesis is a library which lets you write tests that are parametrized by
a source of examples. It then generates simple and comprehensible examples
that make your tests fail, letting you find more bugs with less work.

.. code-block:: console

$ pip install nose
$ pip install hypothesis

For example, testing lists of floats will try many examples, but report the
minimal example of each bug (distinguished exception type and location):

.. code-block:: python

@given(lists(floats(allow_nan=False, allow_infinity=False), min_size=1))
def test_mean(xs):
mean = sum(xs) / len(xs)
assert min(xs) <= mean(xs) <= max(xs)

.. code-block::

Falsifying example: test_mean(
xs=[1.7976321109618856e+308, 6.102390043022755e+303]
)

nose provides automatic test discovery to save you the hassle of manually
creating test suites. It also provides numerous plugins for features such as
xUnit-compatible test output, coverage reporting, and test selection.
Hypothesis is practical as well as very powerful, and will often find bugs
that escaped all other forms of testing. It integrates well with py.test,
and has a strong focus on usability in both simple and advanced scenarios.

`nose <https://nose.readthedocs.io/en/latest/>`_
`hypothesis <https://hypothesis.readthedocs.io/en/latest/>`_


tox
Expand Down