[Python-modules-commits] [nose2] 02/16: Import nose2_0.7.3.orig.tar.gz
Pierre-Elliott Bécue
peb-guest at moszumanska.debian.org
Sat Dec 23 18:32:35 UTC 2017
This is an automated email from the git hooks/post-receive script.
peb-guest pushed a commit to branch master
in repository nose2.
commit 9932a698755a353ea9f6d806c5ca7afca16a0d00
Author: Pierre-Elliott Bécue <becue at crans.org>
Date: Fri Dec 22 23:46:54 2017 +0100
Import nose2_0.7.3.orig.tar.gz
---
MANIFEST.in | 5 +-
PKG-INFO | 76 ++++--
README.rst | 68 ++++--
docs/changelog.rst | 45 +++-
docs/conf.py | 227 ++----------------
docs/configuration.rst | 6 +
docs/dev/compat.rst | 6 -
docs/dev/contributing.rst | 151 ++++++++----
docs/dev/hook_reference.rst | 64 +++++
docs/dev/internals.rst | 1 -
docs/dev/writing_plugins.rst | 2 +-
docs/differences.rst | 8 +-
docs/getting_started.rst | 9 +-
docs/plugins.rst | 11 +-
docs/plugins/layers.rst | 90 +++----
docs/plugins/mp.rst | 2 +-
docs/such_dsl.rst | 2 +-
nose2.egg-info/PKG-INFO | 76 ++++--
nose2.egg-info/SOURCES.txt | 40 +++-
nose2.egg-info/entry_points.txt | 2 +-
nose2.egg-info/requires.txt | 39 ++-
nose2/_version.py | 4 +-
nose2/backports/ordereddict.py | 264 ---------------------
nose2/compat.py | 37 ---
nose2/events.py | 157 +++++++++++-
nose2/exceptions.py | 5 +
nose2/loader.py | 3 +-
nose2/main.py | 2 +-
nose2/plugins/buffer.py | 50 +++-
nose2/plugins/collect.py | 4 +-
nose2/plugins/coverage.py | 75 ++++--
nose2/plugins/junitxml.py | 91 +++++--
nose2/plugins/layers.py | 233 ++++++++++++------
nose2/plugins/loader/discovery.py | 13 +-
nose2/plugins/loader/functions.py | 16 +-
nose2/plugins/loader/generators.py | 9 +-
nose2/plugins/loader/parameters.py | 16 +-
nose2/plugins/loader/testcases.py | 5 +-
nose2/plugins/loader/testclasses.py | 12 +-
nose2/plugins/mp.py | 130 ++++++----
nose2/plugins/prof.py | 6 +
nose2/plugins/result.py | 2 +-
nose2/session.py | 11 +-
nose2/suite.py | 57 ++++-
nose2/tests/_common.py | 8 +-
.../functional/support/lib/layer_hooks_plugin.py | 34 +++
.../coverage_of_imports/lib20171102/__init__.py | 6 +
.../coverage_of_imports/lib20171102/mod1.py | 15 ++
.../coverage_of_imports/test_import_coverage.py | 11 +
.../expected_failures/expected_failures.py | 8 +-
.../scenario/junitxml/chdir/test_junitxml_chdir.py | 3 +-
.../support/scenario/layers/test_layers.py | 4 +-
.../test_layers_and_attributes.py | 2 +-
.../scenario/layers_and_non_layers}/__init__.py | 0
.../scenario/layers_and_non_layers/common.py | 60 +++++
.../scenario/layers_and_non_layers/test_layers.py | 67 ++++++
.../test_such_with_has_setup.py | 24 ++
.../test_such_with_uses_decorator.py | 51 ++++
.../scenario/layers_hooks/test_layers_simple.py | 53 +++++
.../scenario/layers_hooks/test_simple_such.py | 9 +
.../layers_with_errors/test_layers_with_errors.py | 2 +-
.../test_layers_with_inheritance.py | 2 +-
.../scenario/module_import_err/pkg}/__init__.py | 0
.../module_import_err/pkg/test_attribute_err.py | 11 +
.../module_import_err/pkg/test_import_err.py | 13 +
.../test_coverage_config/coveragerc/.coveragerc | 2 +
.../coveragerc/covered_lib_coveragerc}/__init__.py | 0
.../coveragerc/covered_lib_coveragerc/mod1.py | 10 +
.../coveragerc/test_coveragerc.py | 8 +
.../nose2cfg/covered_lib_nose2cfg}/__init__.py | 0
.../nose2cfg/covered_lib_nose2cfg/mod1.py | 10 +
.../test_coverage_config/nose2cfg/nose2.cfg | 2 +
.../test_coverage_config/nose2cfg/test_nose2cfg.py | 8 +
.../tests_in_package/pkg1/test/test_things.py | 5 +-
.../pkgunegg/test/test_things.py | 5 +-
.../functional/support/such/test_such_timing.py | 50 ++++
nose2/tests/functional/test_coverage.py | 88 +++++--
nose2/tests/functional/test_layers_hooks.py | 132 +++++++++++
nose2/tests/functional/test_layers_plugin.py | 13 +-
nose2/tests/functional/test_loading.py | 63 ++++-
nose2/tests/functional/test_mp_plugin.py | 34 ++-
nose2/tests/functional/test_session.py | 30 +++
nose2/tests/functional/test_such_dsl.py | 7 +
nose2/tests/functional/test_util.py | 16 ++
nose2/tests/unit/test_buffer_plugin.py | 35 ++-
nose2/tests/unit/test_collector.py | 2 +-
nose2/tests/unit/test_config.py | 2 +-
nose2/tests/unit/test_failfast.py | 2 +-
nose2/tests/unit/test_functions_loader.py | 2 +-
nose2/tests/unit/test_junitxml.py | 63 ++++-
nose2/tests/unit/test_layers_plugin.py | 128 +++++++++-
nose2/tests/unit/test_mp_plugin.py | 17 ++
nose2/tests/unit/test_session.py | 2 +-
nose2/tools/such.py | 37 +--
nose2/util.py | 156 +++++++++---
requirements-2.7.txt | 1 +
requirements-3.2.txt | 1 +
.../backports/__init__.py => requirements-3.3.txt | 0
.../backports/__init__.py => requirements-3.4.txt | 0
.../backports/__init__.py => requirements-3.5.txt | 0
.../backports/__init__.py => requirements-3.6.txt | 0
.../backports/__init__.py => requirements-3.7.txt | 0
requirements-docs.txt | 4 +-
requirements-py26.txt | 5 -
requirements-pypy2.7.txt | 1 +
requirements-pypy3.2.txt | 1 +
requirements-pypy3.3.txt | 1 +
.../__init__.py => requirements-pypy3.5.txt | 0
requirements.txt | 2 +-
setup.cfg | 1 -
setup.py | 43 +++-
tox.ini | 38 +--
112 files changed, 2424 insertions(+), 1118 deletions(-)
diff --git a/MANIFEST.in b/MANIFEST.in
index 4014291..68f3140 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,12 +1,11 @@
include AUTHORS
include requirements.txt
-include requirements-py26.txt
-include requirements-docs.txt
+include requirements-*.txt
include tox.ini
include unittest.cfg
include README.rst
include license.txt
-recursive-include nose2/tests/functional/support *.py *.txt *.cfg *.rst *.json *.egg
+recursive-include nose2/tests/functional/support *.py *.txt *.cfg *.rst *.json *.egg .coveragerc
recursive-include docs *.inc *.py *.rst Makefile
graft bin
global-exclude __pycache__
diff --git a/PKG-INFO b/PKG-INFO
index 0f75368..b73095c 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,11 +1,12 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
Name: nose2
-Version: 0.6.5
+Version: 0.7.3
Summary: nose2 is the next generation of nicer testing for Python
Home-page: https://github.com/nose-devs/nose2
Author: Jason Pellerin
Author-email: jpellerin+nose at gmail.com
License: UNKNOWN
+Description-Content-Type: UNKNOWN
Description: .. image:: https://travis-ci.org/nose-devs/nose2.png?branch=master
:target: https://travis-ci.org/nose-devs/nose2
:alt: Build Status
@@ -18,23 +19,24 @@ Description: .. image:: https://travis-ci.org/nose-devs/nose2.png?branch=master
:target: https://landscape.io/github/nose-devs/nose2/master
:alt: Code Health
- .. image:: https://pypip.in/v/nose2/badge.png
- :target: https://crate.io/packages/nose2/
+ .. image:: https://img.shields.io/pypi/v/nose2.svg
+ :target: https://pypi.org/project/nose2/
:alt: Latest PyPI version
- .. image:: https://pypip.in/d/nose2/badge.png
- :target: https://crate.io/packages/nose2/
- :alt: Number of PyPI downloads
-
.. image:: https://www.versioneye.com/user/projects/52037a30632bac57a00257ea/badge.png
:target: https://www.versioneye.com/user/projects/52037a30632bac57a00257ea/
:alt: Dependencies Status
+ .. image:: https://badges.gitter.im/gitterHQ/gitter.png
+ :target: https://gitter.im/nose2
+ :alt: Gitter Channel
+
Welcome to nose2
================
- nose2 is the next generation of nicer testing for Python, based
- on the plugins branch of unittest2. nose2 aims to improve on nose by:
+ **Note**: As of 0.7.0 we no longer support 2.6, 3.2, or 3.3. We also removed ``nose2.compat``.
+
+ ``nose2`` aims to improve on nose by:
* providing a better plugin api
* being easier for users to configure
@@ -42,18 +44,51 @@ Description: .. image:: https://travis-ci.org/nose-devs/nose2.png?branch=master
* supporting Python 2 and 3 from the same codebase, without translation
* encouraging greater community involvement in its development
- In service of some those goals, some features of nose *will not* be
- supported in nose2. See `differences`_ for a thorough rundown.
+ In service of some those goals, some features of ``nose`` *are not*
+ supported in ``nose2``. See `differences`_ for a thorough rundown.
+
+ Workflow
+ --------
+
+ If you want to make contributions, you can use the ``Makefile`` to get started
+ quickly and easily::
+
+ # All you need is a supported version of python and virtualenv installed
+ make test
+
+ tox will run our full test suite
+ against all supported version of python that you have installed locally.
+ Don't worry if you don't have all supported versions installed.
+ Your changes will get tested automatically when you make a PR.
+
+ Use ``make help`` to see other options.
+
+ Original Mission & Present Goals
+ --------------------------------
+
+ When ``nose2`` was first written, the plan for its future was to wait for
+ ``unittest2`` plugins to be released (``nose2`` is actually based on the
+ plugins branch of ``unittest2``).
+ Once that was done, ``nose2`` was to become a set of plugins and default
+ configuration for ``unittest2``.
+
+ However, based on the current status of ``unittest2``, it is doubtful that this
+ plan will ever be carried out.
+
+ Current Goals
+ ~~~~~~~~~~~~~
+
+ Even though ``unittest2`` plugins never arrived, ``nose2`` is still being
+ maintained!
+ We have a small community interested in continuing to work on and use ``nose2``
- In time -- once unittest2 supports plugins -- nose2 should be able to
- become just a collection of plugins and configuration defaults. For
- now, it provides a plugin api similar to the one in the unittest2
- plugins branch, and overrides various unittest2 objects.
+ However, given the current climate, with much more interest accruing around
+ `pytest`_, ``nose2`` is prioritizing bugfixes and maintenance ahead of new
+ feature development.
- You are witnesses at the new birth of nose, mark 2. Hope you enjoy our
- new direction!
+ .. _differences: https://nose2.readthedocs.io/en/latest/differences.html
- .. _differences: http://readthedocs.org/docs/nose2/en/latest/differences.html
+ .. _pytest: http://pytest.readthedocs.io/en/latest/
Keywords: unittest,testing,tests
Platform: UNKNOWN
@@ -62,12 +97,11 @@ Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Operating System :: OS Independent
diff --git a/README.rst b/README.rst
index b82c653..4ba6f61 100644
--- a/README.rst
+++ b/README.rst
@@ -10,23 +10,24 @@
:target: https://landscape.io/github/nose-devs/nose2/master
:alt: Code Health
-.. image:: https://pypip.in/v/nose2/badge.png
- :target: https://crate.io/packages/nose2/
+.. image:: https://img.shields.io/pypi/v/nose2.svg
+ :target: https://pypi.org/project/nose2/
:alt: Latest PyPI version
-.. image:: https://pypip.in/d/nose2/badge.png
- :target: https://crate.io/packages/nose2/
- :alt: Number of PyPI downloads
-
.. image:: https://www.versioneye.com/user/projects/52037a30632bac57a00257ea/badge.png
:target: https://www.versioneye.com/user/projects/52037a30632bac57a00257ea/
:alt: Dependencies Status
+.. image:: https://badges.gitter.im/gitterHQ/gitter.png
+ :target: https://gitter.im/nose2
+ :alt: Gitter Channel
+
Welcome to nose2
================
-nose2 is the next generation of nicer testing for Python, based
-on the plugins branch of unittest2. nose2 aims to improve on nose by:
+**Note**: As of 0.7.0 we no longer support 2.6, 3.2, or 3.3. We also removed ``nose2.compat``.
+
+``nose2`` aims to improve on nose by:
* providing a better plugin api
* being easier for users to configure
@@ -34,15 +35,48 @@ on the plugins branch of unittest2. nose2 aims to improve on nose by:
* supporting Python 2 and 3 from the same codebase, without translation
* encouraging greater community involvement in its development
-In service of some those goals, some features of nose *will not* be
-supported in nose2. See `differences`_ for a thorough rundown.
+In service of some those goals, some features of ``nose`` *are not*
+supported in ``nose2``. See `differences`_ for a thorough rundown.
+
+Workflow
+--------
+
+If you want to make contributions, you can use the ``Makefile`` to get started
+quickly and easily::
+
+ # All you need is a supported version of python and virtualenv installed
+ make test
+
+tox will run our full test suite
+against all supported version of python that you have installed locally.
+Don't worry if you don't have all supported versions installed.
+Your changes will get tested automatically when you make a PR.
+
+Use ``make help`` to see other options.
+
+Original Mission & Present Goals
+--------------------------------
+
+When ``nose2`` was first written, the plan for its future was to wait for
+``unittest2`` plugins to be released (``nose2`` is actually based on the
+plugins branch of ``unittest2``).
+Once that was done, ``nose2`` was to become a set of plugins and default
+configuration for ``unittest2``.
+
+However, based on the current status of ``unittest2``, it is doubtful that this
+plan will ever be carried out.
+
+Current Goals
+~~~~~~~~~~~~~
+
+Even though ``unittest2`` plugins never arrived, ``nose2`` is still being
+maintained!
+We have a small community interested in continuing to work on and use ``nose2``
-In time -- once unittest2 supports plugins -- nose2 should be able to
-become just a collection of plugins and configuration defaults. For
-now, it provides a plugin api similar to the one in the unittest2
-plugins branch, and overrides various unittest2 objects.
+However, given the current climate, with much more interest accruing around
+`pytest`_, ``nose2`` is prioritizing bugfixes and maintenance ahead of new
+feature development.
-You are witnesses at the new birth of nose, mark 2. Hope you enjoy our
-new direction!
+.. _differences: https://nose2.readthedocs.io/en/latest/differences.html
-.. _differences: http://readthedocs.org/docs/nose2/en/latest/differences.html
+.. _pytest: http://pytest.readthedocs.io/en/latest/
diff --git a/docs/changelog.rst b/docs/changelog.rst
index fe986c5..0888952 100644
--- a/docs/changelog.rst
+++ b/docs/changelog.rst
@@ -1,23 +1,52 @@
Changelog
=========
-0.6.5
+0.7.3
-----
+* Fixed
+ * Tests failing due to .coveragerc not in MANIFEST
-* Added
- * module version number as described in PEP 396
+Added support for python 3.6.
+
+0.7.2
+-----
+* Fixed
+ * Proper indentation of test with docstring in layers
+ * MP plugin now calls startSubprocess in subprocess
-0.6.4
+0.7.1
-----
+(Built but never deployed.)
* Fixed
- * fix deadlock in mp plugin
+ * Automatically create .coverage file during coverage reporting
+ * Better handling of import failures
-0.6.3
+* Developer workflow changes
+ * Add Makefile to enable "quickstart" workflow
+ * Removed bootstrap.sh and test.sh
+
+0.7.0
-----
-* Added
- * python 3.5 support
+* BREAKING Dropped unsupported Python 2.6, 3.2, 3.3
+ * Added support for Python 3.4, 3.5
+ * ``nose2.compat`` is removed because it is no longer needed. If you have ``from nose2.compat import unittest`` in your code, you will need to replace it with ``import unittest``.
+
+* Replace cov-core with coverage plugin
+
+* Fixed
+ * Prevent crashing from UnicodeDecodeError
+ * Fix unicode stream encoding
+
+* Features
+ * Add layer fixture events and hooks
+ * junit-xml: add logs in "system-out"
+ * Give better error when cannot import a testname
+ * Give full exc_info to loader.failedLoadTests
+ * Better errors when tests fail to load
+ * Reduce the processes created in the MP plugin if there are not enough tests.
+ * Allow combination of MP and OutputBuffer plugins on Python 3
0.6.2
-----
diff --git a/docs/conf.py b/docs/conf.py
index 0e9d05f..5aa2f9d 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -1,221 +1,28 @@
-# -*- coding: utf-8 -*-
-#
-# nose2 documentation build configuration file, created by
-# sphinx-quickstart on Thu Oct 7 15:16:09 2010.
-#
-# This file is execfile()d with the current directory set to its containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
+import sys
+import os
+import sphinx_rtd_theme
-import sys, os
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
sys.path.insert(0, os.path.abspath('..'))
-sys.path.append(os.path.abspath('_themes'))
-
-# -- General configuration -----------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be extensions
-# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.ifconfig', 'sphinx.ext.viewcode', 'nose2.sphinxext']
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix of source filenames.
+extensions = ['sphinx.ext.autodoc',
+ 'sphinx.ext.doctest',
+ 'sphinx.ext.intersphinx',
+ 'sphinx.ext.todo',
+ 'sphinx.ext.coverage',
+ 'sphinx.ext.ifconfig',
+ 'sphinx.ext.viewcode',
+ 'nose2.sphinxext']
source_suffix = '.rst'
-
-# The encoding of source files.
-#source_encoding = 'utf-8-sig'
-
-# The master toctree document.
master_doc = 'index'
-
-# General information about the project.
project = u'nose2'
copyright = u'2010, Jason Pellerin'
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = '0.4'
-# The full version, including alpha/beta/rc tags.
-release = '0.4.7'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#language = None
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-#today = ''
-# Else, today_fmt is used as the format for a strftime call.
-#today_fmt = '%B %d, %Y'
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
+version = '0.6'
+release = '0.6.0'
exclude_patterns = ['_build']
-
-# The reST default role (used for this markup: `text`) to use for all documents.
-#default_role = None
-
-# If true, '()' will be appended to :func: etc. cross-reference text.
-#add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-#add_module_names = True
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-#show_authors = False
-
-# The name of the Pygments (syntax highlighting) style to use.
+templates_path = ['_templates']
pygments_style = 'sphinx'
-
-# A list of ignored prefixes for module index sorting.
-#modindex_common_prefix = []
-
-
-# -- Options for HTML output ---------------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-html_theme = 'default'
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#html_theme_options = {}
-
-# Add any paths that contain custom themes here, relative to this directory.
-html_theme_path = ['_themes']
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# "<project> v<release> documentation".
-#html_title = None
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = None
-
-# The name of an image file (relative to this directory) to place at the top
-# of the sidebar.
-#html_logo = None
-
-# The name of an image file (within the static path) to use as favicon of the
-# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
-# pixels large.
-#html_favicon = None
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-#html_static_path = ['_static']
-
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-#html_last_updated_fmt = '%b %d, %Y'
-
-# If true, SmartyPants will be used to convert quotes and dashes to
-# typographically correct entities.
-#html_use_smartypants = True
-
-# Custom sidebar templates, maps document names to template names.
-#html_sidebars = {}
-
-# Additional templates that should be rendered to pages, maps page names to
-# template names.
-#html_additional_pages = {}
-
-# If false, no module index is generated.
-#html_domain_indices = True
-
-# If false, no index is generated.
-#html_use_index = True
-
-# If true, the index is split into individual pages for each letter.
-#html_split_index = False
-
-# If true, links to the reST sources are added to the pages.
-#html_show_sourcelink = True
-
-# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
-#html_show_sphinx = True
-
-# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
-#html_show_copyright = True
-
-# If true, an OpenSearch description file will be output, and all pages will
-# contain a <link> tag referring to it. The value of this option must be the
-# base URL from which the finished HTML is served.
-#html_use_opensearch = ''
-
-# This is the file name suffix for HTML files (e.g. ".xhtml").
-#html_file_suffix = None
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'nose2doc'
-
-
-# -- Options for LaTeX output --------------------------------------------------
-
-# The paper size ('letter' or 'a4').
-#latex_paper_size = 'letter'
-
-# The font size ('10pt', '11pt' or '12pt').
-#latex_font_size = '10pt'
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title, author, documentclass [howto/manual]).
-latex_documents = [
- ('index', 'nose2.tex', u'nose2 Documentation',
- u'Jason Pellerin', 'manual'),
-]
-
-# The name of an image file (relative to this directory) to place at the top of
-# the title page.
-#latex_logo = None
-
-# For "manual" documents, if this is true, then toplevel headings are parts,
-# not chapters.
-#latex_use_parts = False
-
-# If true, show page references after internal links.
-#latex_show_pagerefs = False
-
-# If true, show URL addresses after external links.
-#latex_show_urls = False
-
-# Additional stuff for the LaTeX preamble.
-#latex_preamble = ''
-
-# Documents to append as an appendix to all manuals.
-#latex_appendices = []
-
-# If false, no module index is generated.
-#latex_domain_indices = True
-
-
-# -- Options for manual page output --------------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
+html_theme = 'sphinx_rtd_theme'
+html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
man_pages = [
('index', 'nose2', u'nose2 Documentation',
- [u'Jason Pellerin'], 1)
-]
-
-
-# Example configuration for intersphinx: refer to the Python standard library.
+ [u'Jason Pellerin'], 1)]
intersphinx_mapping = {'python': ('http://docs.python.org/', None)}
diff --git a/docs/configuration.rst b/docs/configuration.rst
index 9e87da0..ff95922 100644
--- a/docs/configuration.rst
+++ b/docs/configuration.rst
@@ -7,6 +7,11 @@ Configuration Files
Most configuration of nose2 is done via config files. These are
standard, .ini-style config files, with sections marked off by
brackets ("``[unittest]``") and ``key = value`` pairs within those sections.
+When the value is a list, put each value into its own line with proper
+indentation ::
+
+ key_expecting_list = value1
+ value2
Two command line options, :option:`-c` and :option:`--no-user-config`
may be used to determine which config files are loaded.
@@ -105,6 +110,7 @@ section in a config file.
It bears repeating that in both :config:`plugins` and
:config:`exclude-plugins` entries, you specify the plugin *module*,
not the plugin *class*.
+ The module is specified by the (dot-separated) *fully qualified* name.
Examples:
diff --git a/docs/dev/compat.rst b/docs/dev/compat.rst
deleted file mode 100644
index 2e2c6be..0000000
--- a/docs/dev/compat.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-============
-nose2.compat
-============
-
-.. automodule :: nose2.compat
- :members:
diff --git a/docs/dev/contributing.rst b/docs/dev/contributing.rst
index 287406c..320c24a 100644
--- a/docs/dev/contributing.rst
+++ b/docs/dev/contributing.rst
@@ -1,12 +1,17 @@
Contributing to nose2
=====================
-Exhortation
------------
-
Please do! nose2 cannot move forward without contributions from the
testing community.
+If you're unsure how to get started, feel free to ask for help from the nose2
+community on `gitter <https://gitter.im/nose2>`_. We welcome contributors with
+all levels of experience.
+
+This document is a set of guidelines, not strict rules.
+Use your best judgement, and feel free to propose changes to this document
+in a pull request.
+
The Basics
----------
@@ -17,54 +22,112 @@ development. This means:
* Please report issues here: https://github.com/nose-devs/nose2/issues
-* Please make feature requests in the same place.
-
-* Please submit all patches as github pull requests.
-
-Get started
------------
+* Please make feature requests in the same place
-The ``bootstrap.sh`` script in the root of the nose2 distribution can be
-used to get a new local clone up and running quickly. It requires that
-you have `virtualenvwrapper`_ installed. Run this script once to set
-up a nose2 virtualenv, install nose2's dependencies, and set up the
-git submodule that pulls in the `Sphinx`_ theme that the docs use.
+* Please submit all patches as github pull requests
Coding Guidelines
-----------------
-Our style is `pep8`_ except: for consistency with unittest, please use CamelCase
-for class names, methods, attributes and function parameters that map
-directly to class attributes.
-
-Beyond style, the main rule is: *any patch that touches code must
-include tests.* And of course all tests must pass under all supported
-versions of Python.
-
-Fortunately that's easy to check: nose2 uses `tox`_ to manage its test
-scenarios, so simply running ``tox`` in nose2's root directory will
-run all of the tests with all supported python versions. When your
-patch gets all green, send a pull request!
-
-Merging Guidelines
-------------------
-
-The github Merge Button(tm) should be used only for trivial
-changes. Other merges, even those that can be automatically merged,
-should be merged manually, so that you have an opportunity to run
-tests on the merged changes before pushing them. When you merge
-manually, please use ``--no-ff`` so that we have a record of all
-merges.
-
-Also, core devs should not merge their own work -- again, unless it's
-trivial -- without giving other developers a chance to review it. The
-basic workflow should be to do the work in a topic branch in your fork
-then post a pull request for that branch, whether you're a core
-developer or other contributor.
+The main rule is: *any patch that touches code should include tests.*
+And of course all tests should pass under all supported versions of Python.
+
+If you aren't sure how to add tests, or you don't know why existing tests fail
+on your changes, submit your patch and ask for help testing it.
+
+Tests are easy to run. Just install `tox`_ (``pip install tox``), and run
+``tox`` in the nose2 root directory.
+
+Some additional tips for the python and documentation in this project.
+
+- Code should be `pep8`_ compliant
+- Where possible, write code which passes ``pyflakes`` linting (consider using
+ ``flake8`` to do ``pyflakes`` and ``pep8`` checking)
+- For consistency with ``unittest`` please use CamelCase for class names,
+ methods, attributes and function parameters that map directly to class
+ attributes.
+- Try to use raw strings for docstrings -- ensures that ReST won't be
+ confused by characters like ``\\``
+- For complex functionality, include sample usage in docstrings
+- Comment liberally, but don't comment on every line of code
+- Use examples very liberally in documentation
+- Use double-quotes for strings, except when quoting a string containing
+ double-quotes but not containing single quotes
+- Use absolute imports everywhere
+- Avoid circular imports whenever possible -- given the choice between adding
+ a new module or adding a circular import, add the new module
+- Import non-``nose2`` modules and packages before importing from within
+ ``nose2``
+- Think very hard before adding a new dependency -- keep the dependencies of
+ ``nose2`` as lightweight as possible
+
+Commit Messages
+~~~~~~~~~~~~~~~
+
+A few basic ground rules for what ideal commits should look like.
+
+- No lines over 72 characters
+- No GitHub emoji -- use your words
+- Reference issues and pull requests where appropriate
+- Prefer present tense and imperative mood
+ e.g. rather than "added feature foo" (past indicative)
+ or "adds feature foo" (present indicative)
+ the best option is "add feature foo" (present imperative)
+
+Workflow, Branching and Pull Requests
+-------------------------------------
+
+The basic workflow should be to do the work in a topic branch in your fork
+then post a pull request for that branch.
+
+Core devs should not merge their own work -- unless it's trivial -- without
+giving other developers a chance to review it.
+
+For any pull request,
+
+- *Make sure it meets the standards set in this document*
+- *Make sure it merges cleanly*
+- *List any issues closed by the pull request*
+- *Squash intermediate commits*. Consider using ``git rebase --interactive`` to
+ squash typo fixes, aborted implementations, etc.
+
+Reporting Bugs
+--------------
+
+The best bug reports are ones which:
+
+- *Check for duplicates*. Do a quick search to try to make sure you aren't
+ reporting a known bug
+- *Use a clear descriptive title*
+- *Explain what behavior you expected*.
+- *Provide a specific example of how to reproduce*. Example code, the
+ command(s) you ran, and anything else which may be relevant
+- *Include a stacktrace* where applicable
+
+In many cases, you can help by including the following information:
+
+- *What version of python are you running?*
+- *What OS and OS version are you running?* ``uname -a`` output helps, but
+ additional description like "Ubuntu Linux 17.10" may be useful too
+- *What other python packages do you have installed?* The best thing in this
+ case is to show us the results of ``pip freeze``
+
+If you are willing and able, *write a failing test*.
+
+Requesting Enhancements
+-----------------------
+
+When requesting new features,
+
+- *Say why you want it*. Focus more on the problem which needs to be solved
+ than the specifics of how to solve it
+- *Suggest what you think is the easiest implementation path*. If you have an
+ idea about how a feature could be implemented, write it down
+- *Volunteer to write it!* ``nose2`` is maintained as a community effort. If
+ you want a new feature, the best way to get it added is to write it
+ yourself!
.. _github: https://github.com/
.. _pep8: http://www.python.org/dev/peps/pep-0008/
.. _tox: http://pypi.python.org/pypi/tox
-.. _virtualenvwrapper: http://pypi.python.org/pypi/virtualenvwrapper
-.. _Sphinx: http://sphinx.pocoo.org/
diff --git a/docs/dev/hook_reference.rst b/docs/dev/hook_reference.rst
index 7121ef0..5a34c86 100644
--- a/docs/dev/hook_reference.rst
+++ b/docs/dev/hook_reference.rst
@@ -166,6 +166,38 @@ These hooks are called for registered plugins only.
To prevent the test executor from running at all, set
``event.handled`` to ``True``.
+.. function :: startLayerSetup(self, event)
+
+ :param event: A :class:`nose2.events.StartLayerSetupEvent` instance (only
+ available in suites with layers).
+
+ Plugins can use this hook to take action before the start of the ``setUp``
+ in a layer.
+
+.. function :: stopLayerSetup(self, event)
+
+ :param event: A :class:`nose2.events.StopLayerSetupEvent` instance (only
+ available in suites with layers).
+
+ Plugins can use this hook to take action after ``setUp`` finishes, in a
+ layer.
+
+.. function :: startLayerSetupTest(self, event)
+
+ :param event: A :class:`nose2.events.StartLayerSetupTestEvent` instance
+ (only available in suites with layers).
+
+ Plugins can use this hook to take action before the start of ``testSetUp``
+ in a layer.
+
+.. function :: stopLayerSetupTest(self, event)
+
+ :param event: A :class:`nose2.events.StopLayerSetupTestEvent` instance (only
+ available in suites with layers).
+
+ Plugins can use this hook to take action after ``testSetUp`` finishes, in a
+ layer.
+
.. function :: startTest(self, event)
:param event: A :class:`nose2.events.StartTestEvent` instance
@@ -286,6 +318,38 @@ These hooks are called for registered plugins only.
Plugins can use this hook to take action after a test has completed
running and reported its outcome.
+.. function :: startLayerTeardownTest(self, event)
+
+ :param event: A :class:`nose2.events.StartLayerTeardownTestEvent` instance
+ (only available in suites with layers).
+
+ Plugins can use this hook to take action before the start of
+ ``testTearDown()`` in a layer.
+
+.. function :: stopLayerTeardownTest(self, event)
+
+ :param event: A :class:`nose2.events.StopLayerTeardownTestEvent` instance
+ (only available in suites with layers).
+
+ Plugins can use this hook to take action after ``testTearDown()`` finishes,
+ in a layer.
+
+.. function :: startLayerTeardown(self, event)
+
+ :param event: A :class:`nose2.events.StartLayerTeardownEvent` instance (only
+ available in suites with layers).
+
+ Plugins can use this hook to take action before the start of the
+ ``tearDown()`` in a layer.
+
+.. function :: stopLayerTeardown(self, event)
+
+ :param event: A :class:`nose2.events.StopLayerTeardownEvent` instance (only
+ available in suites with layers).
+
+ Plugins can use this hook to take action after ``tearDown()`` finishes, in a
+ layer.
+
.. function :: stopTestRun(self, event)
:param event: A :class:`nose2.events.StopTestRunEvent` instance
diff --git a/docs/dev/internals.rst b/docs/dev/internals.rst
index 2852750..7006699 100644
--- a/docs/dev/internals.rst
+++ b/docs/dev/internals.rst
@@ -9,7 +9,6 @@ you want to contribute to nose2.
:maxdepth: 2
main
- compat
exceptions
loader
result
diff --git a/docs/dev/writing_plugins.rst b/docs/dev/writing_plugins.rst
index 2abf894..3f25ec5 100644
--- a/docs/dev/writing_plugins.rst
+++ b/docs/dev/writing_plugins.rst
@@ -156,7 +156,7 @@ Recipes
* Writing a plugin that monitors or controls test result output
Implement any of the ``report*`` hook methods, especially if you
- want to output to the console. If outputing to file or other system,
+ want to output to the console. If outputting to file or other system,
you might implement :func:`testOutcome` instead.
Example: :class:`nose2.plugins.result.ResultReporter`
diff --git a/docs/differences.rst b/docs/differences.rst
index 490acf7..9811731 100644
--- a/docs/differences.rst
+++ b/docs/differences.rst
@@ -11,9 +11,9 @@ Python Versions
^^^^^^^^^^^^^^^
nose supports Python 2.4 and above, but nose2 *only supports Python
-2.6, 2.7, 3.2, 3.3 and pypy*. Unfortunately, supporting Pythons older than
... 4740 lines suppressed ...
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/nose2.git
More information about the Python-modules-commits
mailing list