Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 8bac32e

Browse files
committed
Sphinx configuration
1 parent e3492bd commit 8bac32e

File tree

6 files changed

+403
-0
lines changed

6 files changed

+403
-0
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
.eggs/
55
dist/
66
build/
7+
docs/build/
8+
docs/source/_*
79

810
env/
911
venv/

docs/Makefile

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Minimal makefile for Sphinx documentation
2+
#
3+
4+
# You can set these variables from the command line.
5+
SPHINXOPTS =
6+
SPHINXBUILD = sphinx-build
7+
SPHINXPROJ = testgres
8+
SOURCEDIR = source
9+
BUILDDIR = build
10+
11+
# Put it first so that "make" without argument is like "make help".
12+
help:
13+
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14+
15+
.PHONY: help Makefile
16+
17+
# Catch-all target: route all unknown targets to Sphinx using the new
18+
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19+
%: Makefile
20+
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

docs/source/conf.py

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
# -*- coding: utf-8 -*-
2+
#
3+
# Configuration file for the Sphinx documentation builder.
4+
#
5+
# This file does only contain a selection of the most common options. For a
6+
# full list see the documentation:
7+
# http://www.sphinx-doc.org/en/stable/config
8+
9+
# -- Path setup --------------------------------------------------------------
10+
11+
# If extensions (or modules to document with autodoc) are in another directory,
12+
# add these directories to sys.path here. If the directory is relative to the
13+
# documentation root, use os.path.abspath to make it absolute, like shown here.
14+
#
15+
import os
16+
import sys
17+
sys.path.insert(0, os.path.abspath('../..'))
18+
19+
20+
# -- Project information -----------------------------------------------------
21+
22+
project = u'testgres'
23+
copyright = u'2016-2018, Postgres Professional'
24+
author = u'Postgres Professional'
25+
26+
# The short X.Y version
27+
version = u''
28+
# The full version, including alpha/beta/rc tags
29+
release = u'1.5'
30+
31+
32+
# -- General configuration ---------------------------------------------------
33+
34+
# If your documentation needs a minimal Sphinx version, state it here.
35+
#
36+
# needs_sphinx = '1.0'
37+
38+
# Add any Sphinx extension module names here, as strings. They can be
39+
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
40+
# ones.
41+
#extensions = [
42+
# 'sphinx.ext.autodoc',
43+
#]
44+
45+
extensions = ['sphinx.ext.autodoc', 'sphinxcontrib.napoleon']
46+
47+
# Add any paths that contain templates here, relative to this directory.
48+
templates_path = ['_templates']
49+
50+
# The suffix(es) of source filenames.
51+
# You can specify multiple suffix as a list of string:
52+
#
53+
# source_suffix = ['.rst', '.md']
54+
source_suffix = '.rst'
55+
56+
# The master toctree document.
57+
master_doc = 'index'
58+
59+
# The language for content autogenerated by Sphinx. Refer to documentation
60+
# for a list of supported languages.
61+
#
62+
# This is also used if you do content translation via gettext catalogs.
63+
# Usually you set "language" from the command line for these cases.
64+
language = None
65+
66+
# List of patterns, relative to source directory, that match files and
67+
# directories to ignore when looking for source files.
68+
# This pattern also affects html_static_path and html_extra_path .
69+
exclude_patterns = []
70+
71+
# The name of the Pygments (syntax highlighting) style to use.
72+
pygments_style = 'sphinx'
73+
74+
75+
# -- Options for HTML output -------------------------------------------------
76+
77+
# The theme to use for HTML and HTML Help pages. See the documentation for
78+
# a list of builtin themes.
79+
#
80+
html_theme = 'alabaster'
81+
82+
# Theme options are theme-specific and customize the look and feel of a theme
83+
# further. For a list of options available for each theme, see the
84+
# documentation.
85+
#
86+
# html_theme_options = {}
87+
88+
# Add any paths that contain custom static files (such as style sheets) here,
89+
# relative to this directory. They are copied after the builtin static files,
90+
# so a file named "default.css" will overwrite the builtin "default.css".
91+
html_static_path = ['_static']
92+
93+
# Custom sidebar templates, must be a dictionary that maps document names
94+
# to template names.
95+
#
96+
# The default sidebars (for documents that don't match any pattern) are
97+
# defined by theme itself. Builtin themes are using these templates by
98+
# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
99+
# 'searchbox.html']``.
100+
#
101+
# html_sidebars = {}
102+
103+
104+
# -- Options for HTMLHelp output ---------------------------------------------
105+
106+
# Output file base name for HTML help builder.
107+
htmlhelp_basename = 'testgresdoc'
108+
109+
110+
# -- Options for LaTeX output ------------------------------------------------
111+
112+
latex_elements = {
113+
# The paper size ('letterpaper' or 'a4paper').
114+
#
115+
# 'papersize': 'letterpaper',
116+
117+
# The font size ('10pt', '11pt' or '12pt').
118+
#
119+
# 'pointsize': '10pt',
120+
121+
# Additional stuff for the LaTeX preamble.
122+
#
123+
# 'preamble': '',
124+
125+
# Latex figure (float) alignment
126+
#
127+
# 'figure_align': 'htbp',
128+
}
129+
130+
# Grouping the document tree into LaTeX files. List of tuples
131+
# (source start file, target name, title,
132+
# author, documentclass [howto, manual, or own class]).
133+
latex_documents = [
134+
(master_doc, 'testgres.tex', u'testgres Documentation',
135+
u'Postgres Professional', 'manual'),
136+
]
137+
138+
139+
# -- Options for manual page output ------------------------------------------
140+
141+
# One entry per manual page. List of tuples
142+
# (source start file, name, description, authors, manual section).
143+
man_pages = [
144+
(master_doc, 'testgres', u'testgres Documentation',
145+
[author], 1)
146+
]
147+
148+
149+
# -- Options for Texinfo output ----------------------------------------------
150+
151+
# Grouping the document tree into Texinfo files. List of tuples
152+
# (source start file, target name, title, author,
153+
# dir menu entry, description, category)
154+
texinfo_documents = [
155+
(master_doc, 'testgres', u'testgres Documentation',
156+
author, 'testgres', 'One line description of project.',
157+
'Miscellaneous'),
158+
]
159+
160+
161+
# -- Extension configuration -------------------------------------------------

docs/source/index.rst

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
2+
Testgres documentation
3+
======================
4+
5+
Testgres is a PostgreSQL testing utility
6+
7+
Installation
8+
============
9+
10+
To install testgres, run:
11+
12+
.. code-block:: bash
13+
14+
pip install testgres
15+
16+
We encourage you to use ``virtualenv`` for your testing environment.
17+
18+
Usage
19+
=====
20+
21+
Environment
22+
-----------
23+
24+
Note: by default testgres runs ``initdb``, ``pg_ctl``, ``psql`` provided by ``PATH``.
25+
26+
There are several ways to specify a custom postgres installation:
27+
28+
- export ``PG_CONFIG`` environment variable pointing to the ``pg_config`` executable;
29+
- export ``PG_BIN`` environment variable pointing to the directory with executable files.
30+
31+
Example:
32+
33+
.. code-block:: bash
34+
35+
export PG_BIN=$HOME/pg_10/bin
36+
python my_tests.py
37+
38+
Examples
39+
--------
40+
41+
Here is an example of what you can do with ``testgres``:
42+
43+
.. code-block:: python
44+
45+
# create a node with random name, port, etc
46+
with testgres.get_new_node() as node:
47+
48+
# run inidb
49+
node.init()
50+
51+
# start PostgreSQL
52+
node.start()
53+
54+
# execute a query in a default DB
55+
print(node.execute('select 1'))
56+
57+
# ... node stops and its files are about to be removed
58+
59+
Backup & replication
60+
--------------------
61+
62+
It's quite easy to create a backup and start a new replica:
63+
64+
.. code-block:: python
65+
66+
with testgres.get_new_node('master') as master:
67+
master.init().start()
68+
69+
# create a backup
70+
with master.backup() as backup:
71+
72+
# create and start a new replica
73+
replica = backup.spawn_replica('replica').start()
74+
75+
# catch up with master node
76+
replica.catchup()
77+
78+
# execute a dummy query
79+
print(replica.execute('postgres', 'select 1'))
80+
81+
Modules
82+
=======
83+
84+
.. toctree::
85+
:maxdepth: 2
86+
87+
testgres
88+
89+
90+
.. Indices and tables
91+
.. ==================
92+
93+
.. * :ref:`genindex`
94+
.. * :ref:`modindex`
95+
.. * :ref:`search`

docs/source/modules.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
testgres
2+
========
3+
4+
.. toctree::
5+
:maxdepth: 4
6+
7+
testgres

0 commit comments

Comments
 (0)