Skip to content

Commit 5afad29

Browse files
committed
initial implementation
1 parent 84747f1 commit 5afad29

File tree

12 files changed

+458
-0
lines changed

12 files changed

+458
-0
lines changed

CHANGELOG

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
1.0
2+
---
3+
4+
* Initial release

LICENSE

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
Permission is hereby granted, free of charge, to any person obtaining a copy
2+
of this software and associated documentation files (the "Software"), to deal
3+
in the Software without restriction, including without limitation the rights
4+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
5+
copies of the Software, and to permit persons to whom the Software is
6+
furnished to do so, subject to the following conditions:
7+
8+
The above copyright notice and this permission notice shall be included in all
9+
copies or substantial portions of the Software.
10+
11+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
12+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
13+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
14+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
15+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
16+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
17+
SOFTWARE.

MANIFEST.in

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
include CHANGELOG
2+
include README.rst
3+
include setup.py
4+
include test_echo.py
5+
include tox.ini
6+
include LICENSE
7+
graft docs

docs/api.rst

Whitespace-only changes.

docs/conf.py

Lines changed: 246 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,246 @@
1+
# -*- coding: utf-8 -*-
2+
#
3+
# pytest-echo documentation build configuration file, created by
4+
# sphinx-quickstart on Mon Jun 18 21:42:25 2012.
5+
#
6+
# This file is execfile()d with the current directory set to its containing dir.
7+
#
8+
# Note that not all possible configuration values are present in this
9+
# autogenerated file.
10+
#
11+
# All configuration values have a default; values that are commented out
12+
# serve to show the default.
13+
14+
import sys, os
15+
16+
# If extensions (or modules to document with autodoc) are in another directory,
17+
# add these directories to sys.path here. If the directory is relative to the
18+
# documentation root, use os.path.abspath to make it absolute, like shown here.
19+
#sys.path.insert(0, os.path.abspath('.'))
20+
21+
# -- General configuration -----------------------------------------------------
22+
23+
# If your documentation needs a minimal Sphinx version, state it here.
24+
#needs_sphinx = '1.0'
25+
26+
# Add any Sphinx extension module names here, as strings. They can be extensions
27+
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
28+
extensions = ['sphinx.ext.intersphinx', 'sphinx.ext.autodoc', 'sphinx.ext.viewcode']
29+
30+
# Add any paths that contain templates here, relative to this directory.
31+
templates_path = ['_templates']
32+
33+
# The suffix of source filenames.
34+
source_suffix = '.rst'
35+
36+
# The encoding of source files.
37+
#source_encoding = 'utf-8-sig'
38+
39+
# The master toctree document.
40+
master_doc = 'index'
41+
42+
# General information about the project.
43+
project = u'pytest-echo'
44+
copyright = u'2014, Stefano Apostolico'
45+
46+
# The version info for the project you're documenting, acts as replacement for
47+
# |version| and |release|, also used in various other places throughout the
48+
# built documents.
49+
#
50+
# The short X.Y version.
51+
version = '0.1'
52+
# The full version, including alpha/beta/rc tags.
53+
release = '0.1'
54+
55+
# The language for content autogenerated by Sphinx. Refer to documentation
56+
# for a list of supported languages.
57+
#language = None
58+
59+
# There are two options for replacing |today|: either, you set today to some
60+
# non-false value, then it is used:
61+
#today = ''
62+
# Else, today_fmt is used as the format for a strftime call.
63+
#today_fmt = '%B %d, %Y'
64+
65+
# List of patterns, relative to source directory, that match files and
66+
# directories to ignore when looking for source files.
67+
exclude_patterns = ['_build']
68+
69+
# The reST default role (used for this markup: `text`) to use for all documents.
70+
#default_role = None
71+
72+
# If true, '()' will be appended to :func: etc. cross-reference text.
73+
#add_function_parentheses = True
74+
75+
# If true, the current module name will be prepended to all description
76+
# unit titles (such as .. function::).
77+
#add_module_names = True
78+
79+
# If true, sectionauthor and moduleauthor directives will be shown in the
80+
# output. They are ignored by default.
81+
#show_authors = False
82+
83+
# The name of the Pygments (syntax highlighting) style to use.
84+
pygments_style = 'sphinx'
85+
86+
# A list of ignored prefixes for module index sorting.
87+
#modindex_common_prefix = []
88+
89+
90+
# -- Options for HTML output ---------------------------------------------------
91+
92+
# The theme to use for HTML and HTML Help pages. See the documentation for
93+
# a list of builtin themes.
94+
html_theme = 'default'
95+
96+
# Theme options are theme-specific and customize the look and feel of a theme
97+
# further. For a list of options available for each theme, see the
98+
# documentation.
99+
#html_theme_options = {}
100+
101+
# Add any paths that contain custom themes here, relative to this directory.
102+
#html_theme_path = []
103+
104+
# The name for this set of Sphinx documents. If None, it defaults to
105+
# "<project> v<release> documentation".
106+
#html_title = None
107+
108+
# A shorter title for the navigation bar. Default is the same as html_title.
109+
#html_short_title = None
110+
111+
# The name of an image file (relative to this directory) to place at the top
112+
# of the sidebar.
113+
#html_logo = None
114+
115+
# The name of an image file (within the static path) to use as favicon of the
116+
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
117+
# pixels large.
118+
#html_favicon = None
119+
120+
# Add any paths that contain custom static files (such as style sheets) here,
121+
# relative to this directory. They are copied after the builtin static files,
122+
# so a file named "default.css" will overwrite the builtin "default.css".
123+
html_static_path = ['_static']
124+
125+
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
126+
# using the given strftime format.
127+
#html_last_updated_fmt = '%b %d, %Y'
128+
129+
# If true, SmartyPants will be used to convert quotes and dashes to
130+
# typographically correct entities.
131+
#html_use_smartypants = True
132+
133+
# Custom sidebar templates, maps document names to template names.
134+
#html_sidebars = {}
135+
136+
# Additional templates that should be rendered to pages, maps page names to
137+
# template names.
138+
#html_additional_pages = {}
139+
140+
# If false, no module index is generated.
141+
#html_domain_indices = True
142+
143+
# If false, no index is generated.
144+
#html_use_index = True
145+
146+
# If true, the index is split into individual pages for each letter.
147+
#html_split_index = False
148+
149+
# If true, links to the reST sources are added to the pages.
150+
#html_show_sourcelink = True
151+
152+
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
153+
#html_show_sphinx = True
154+
155+
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
156+
#html_show_copyright = True
157+
158+
# If true, an OpenSearch description file will be output, and all pages will
159+
# contain a <link> tag referring to it. The value of this option must be the
160+
# base URL from which the finished HTML is served.
161+
#html_use_opensearch = ''
162+
163+
# This is the file name suffix for HTML files (e.g. ".xhtml").
164+
#html_file_suffix = None
165+
166+
# Output file base name for HTML help builder.
167+
htmlhelp_basename = 'pytest-echodoc'
168+
169+
170+
# -- Options for LaTeX output --------------------------------------------------
171+
172+
latex_elements = {
173+
# The paper size ('letterpaper' or 'a4paper').
174+
#'papersize': 'letterpaper',
175+
176+
# The font size ('10pt', '11pt' or '12pt').
177+
#'pointsize': '10pt',
178+
179+
# Additional stuff for the LaTeX preamble.
180+
#'preamble': '',
181+
}
182+
183+
# Grouping the document tree into LaTeX files. List of tuples
184+
# (source start file, target name, title, author, documentclass [howto/manual]).
185+
latex_documents = [
186+
('index', 'pytest-echo.tex', u'pytest-echo Documentation',
187+
u'Stefano Apostolico', 'manual'),
188+
]
189+
190+
# The name of an image file (relative to this directory) to place at the top of
191+
# the title page.
192+
#latex_logo = None
193+
194+
# For "manual" documents, if this is true, then toplevel headings are parts,
195+
# not chapters.
196+
#latex_use_parts = False
197+
198+
# If true, show page references after internal links.
199+
#latex_show_pagerefs = False
200+
201+
# If true, show URL addresses after external links.
202+
#latex_show_urls = False
203+
204+
# Documents to append as an appendix to all manuals.
205+
#latex_appendices = []
206+
207+
# If false, no module index is generated.
208+
#latex_domain_indices = True
209+
210+
211+
# -- Options for manual page output --------------------------------------------
212+
213+
# One entry per manual page. List of tuples
214+
# (source start file, name, description, authors, manual section).
215+
man_pages = [
216+
('index', 'pytest-echo', u'pytest-echo Documentation',
217+
[u'Stefano Apostolico'], 1)
218+
]
219+
220+
# If true, show URL addresses after external links.
221+
#man_show_urls = False
222+
223+
224+
# -- Options for Texinfo output ------------------------------------------------
225+
226+
# Grouping the document tree into Texinfo files. List of tuples
227+
# (source start file, target name, title, author,
228+
# dir menu entry, description, category)
229+
texinfo_documents = [
230+
('index', 'pytest-echo', u'pytest-echo Documentation',
231+
u'Stefano Apostolico', 'pytest-echo', '-',
232+
'Miscellaneous'),
233+
]
234+
235+
# Documents to append as an appendix to all manuals.
236+
#texinfo_appendices = []
237+
238+
# If false, no module index is generated.
239+
#texinfo_domain_indices = True
240+
241+
# How to display URL addresses: 'footnote', 'no', or 'inline'.
242+
#texinfo_show_urls = 'footnote'
243+
244+
245+
# Example configuration for intersphinx: refer to the Python standard library.
246+
intersphinx_mapping = {'http://docs.python.org/': None}

docs/index.rst

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
.. pytest-echo documentation master file, created by
2+
sphinx-quickstart on Mon Jun 18 21:42:25 2012.
3+
You can adapt this file completely to your liking, but it should at least
4+
contain the root `toctree` directive.
5+
6+
Welcome to pytest-cache's documentation!
7+
========================================
8+
9+
Contents:
10+
11+
.. toctree::
12+
:maxdepth: 2
13+
14+
readme
15+
16+
17+
Indices and tables
18+
==================
19+
20+
* :ref:`genindex`
21+
* :ref:`modindex`
22+
* :ref:`search`
23+

docs/readme.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.. include:: ../README.rst

pytest_echo.py

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# -*- coding: utf-8 -*-
2+
import os
3+
from pprint import pformat
4+
5+
6+
__version__ = '1.0'
7+
8+
9+
def _get_version(package_name):
10+
try:
11+
pkg = __import__(package_name)
12+
except ImportError:
13+
return '<unable to load package>'
14+
for attr_name in ('get_version', '__version__', 'VERSION', 'version'):
15+
if hasattr(pkg, attr_name):
16+
attr = getattr(pkg, attr_name)
17+
if callable(attr):
18+
return attr()
19+
else:
20+
return attr
21+
22+
23+
def _get_settings(entry):
24+
try:
25+
from django.core.exceptions import ImproperlyConfigured
26+
27+
try:
28+
from django.conf import settings
29+
30+
getattr(settings, 'DEBUG') # force settings loading
31+
except ImproperlyConfigured:
32+
settings.configure()
33+
try:
34+
entry = getattr(settings, entry)
35+
return pformat(entry)
36+
except AttributeError as e:
37+
return "ERROR: %s" % str(e)
38+
except ImportError:
39+
return ""
40+
41+
42+
def pytest_report_header(config):
43+
ret = []
44+
if config.option.echo_settings:
45+
ret.append("\n".join(["%s: %s" % (k, _get_settings(k))
46+
for k in config.option.echo_settings]))
47+
if config.option.echo_envs:
48+
ret.append("\n".join(["%s: %s" % (k, os.environ.get(k, "<not set>"))
49+
for k in config.option.echo_envs]))
50+
if config.option.echo_versions:
51+
ret.append("\n".join(["%s: %s" % (k, _get_version(k))
52+
for k in config.option.echo_versions]))
53+
if ret:
54+
return "\n".join(ret)
55+
56+
57+
def pytest_addoption(parser):
58+
group = parser.getgroup("general")
59+
group.addoption('--echo-env', action='append', dest="echo_envs",
60+
default=[], help="environment to print")
61+
group.addoption('--echo-version', action='append', dest="echo_versions",
62+
default=[], help="package version to print")
63+
group.addoption('--echo-settings', action='append', dest="echo_settings",
64+
default=[], help="django settings to print")

setup.cfg

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[build_sphinx]
2+
source-dir = doc/
3+
build-dir = doc/_build
4+
all_files = 1
5+
6+
[upload_sphinx]
7+
upload-dir = doc/_build/html

0 commit comments

Comments
 (0)