summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Piercy <web@stevepiercy.com>2015-11-25 20:52:14 -0800
committerSteve Piercy <web@stevepiercy.com>2015-11-25 20:52:14 -0800
commit9a51bff66332e4b2b9fb080ec74512347d722294 (patch)
tree8212ea4f9c6c096490fd9a27841922cf50ea3416
parent84a168ef5fd4bdd487226f43b8c0e16237e82e18 (diff)
parent2d9ed3f7c1fe314bef0f25c58bfa0a98dda83acc (diff)
downloadpyramid-9a51bff66332e4b2b9fb080ec74512347d722294.tar.gz
pyramid-9a51bff66332e4b2b9fb080ec74512347d722294.tar.bz2
pyramid-9a51bff66332e4b2b9fb080ec74512347d722294.zip
Merge remote-tracking branch 'upstream/master'
-rw-r--r--.travis.yml2
-rw-r--r--HACKING.txt2
-rwxr-xr-xbuilddocs.sh2
-rw-r--r--docs/api/session.rst1
-rw-r--r--pyramid/session.py18
-rw-r--r--tox.ini87
6 files changed, 61 insertions, 51 deletions
diff --git a/.travis.yml b/.travis.yml
index 79d9fa09d..2163eb8fd 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -23,6 +23,8 @@ matrix:
- python: 3.5
env: TOXENV=py2-cover,py3-cover,coverage
- python: 3.5
+ env: TOXENV=docs
+ - python: 3.5
env: TOXENV=pep8
install:
diff --git a/HACKING.txt b/HACKING.txt
index d0f9a769e..c838fda22 100644
--- a/HACKING.txt
+++ b/HACKING.txt
@@ -217,7 +217,7 @@ changed to reflect the bug fix, ideally in the same commit that fixes the bug
or adds the feature. To build and review docs, use the following steps.
1. In the main Pyramid checkout directory, run ``./builddocs.sh`` (which just
- turns around and runs ``tox -e py2-docs,py3-docs``)::
+ turns around and runs ``tox -e docs``)::
$ ./builddocs.sh
diff --git a/builddocs.sh b/builddocs.sh
index eaf02fc1d..0859fe268 100755
--- a/builddocs.sh
+++ b/builddocs.sh
@@ -1,3 +1,3 @@
#!/bin/bash
-tox -epy2-docs,py3-docs
+tox -e docs
diff --git a/docs/api/session.rst b/docs/api/session.rst
index dde9d20e9..474e2bb32 100644
--- a/docs/api/session.rst
+++ b/docs/api/session.rst
@@ -17,4 +17,5 @@
.. autofunction:: BaseCookieSessionFactory
+ .. autoclass:: PickleSerializer
diff --git a/pyramid/session.py b/pyramid/session.py
index fa85fe69c..51f9de620 100644
--- a/pyramid/session.py
+++ b/pyramid/session.py
@@ -133,13 +133,25 @@ def check_csrf_token(request,
return True
class PickleSerializer(object):
- """ A Webob cookie serializer that uses the pickle protocol to dump Python
- data to bytes."""
+ """ A serializer that uses the pickle protocol to dump Python
+ data to bytes.
+
+ This is the default serializer used by Pyramid.
+
+ ``protocol`` may be specified to control the version of pickle used.
+ Defaults to :attr:`pickle.HIGHEST_PROTOCOL`.
+
+ """
+ def __init__(self, protocol=pickle.HIGHEST_PROTOCOL):
+ self.protocol = protocol
+
def loads(self, bstruct):
+ """Accept bytes and return a Python object."""
return pickle.loads(bstruct)
def dumps(self, appstruct):
- return pickle.dumps(appstruct, pickle.HIGHEST_PROTOCOL)
+ """Accept a Python object and return bytes."""
+ return pickle.dumps(appstruct, self.protocol)
def BaseCookieSessionFactory(
serializer,
diff --git a/tox.ini b/tox.ini
index 20a9ee5b1..626931faf 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,7 +1,7 @@
[tox]
envlist =
- py26,py27,py32,py33,py34,py35,pypy,pypy3,pep8,
- {py2,py3}-docs,
+ py26,py27,py32,py33,py34,py35,pypy,pypy3,
+ docs,pep8,
{py2,py3}-cover,coverage,
[testenv]
@@ -23,49 +23,6 @@ commands =
pip install pyramid[testing]
nosetests --with-xunit --xunit-file=nosetests-{envname}.xml {posargs:}
-# we separate coverage into its own testenv because a) "last run wins" wrt
-# cobertura jenkins reporting and b) pypy and jython can't handle any
-# combination of versions of coverage and nosexcover that i can find.
-[testenv:py2-cover]
-commands =
- pip install pyramid[testing]
- coverage run --source=pyramid {envbindir}/nosetests
- coverage xml -o coverage-py2.xml
-setenv =
- COVERAGE_FILE=.coverage.py2
-
-[testenv:py3-cover]
-commands =
- pip install pyramid[testing]
- coverage run --source=pyramid {envbindir}/nosetests
- coverage xml -o coverage-py3.xml
-setenv =
- COVERAGE_FILE=.coverage.py3
-
-[testenv:coverage]
-basepython = python3.4
-commands =
- coverage erase
- coverage combine
- coverage xml
- coverage report --show-missing --fail-under=100
-deps =
- coverage
-setenv =
- COVERAGE_FILE=.coverage
-
-[testenv:py2-docs]
-whitelist_externals = make
-commands =
- pip install pyramid[docs]
- make -C docs html epub BUILDDIR={envdir} "SPHINXOPTS=-W -E"
-
-[testenv:py3-docs]
-whitelist_externals = make
-commands =
- pip install pyramid[docs]
- make -C docs html epub BUILDDIR={envdir} "SPHINXOPTS=-W -E"
-
[testenv:py26-scaffolds]
basepython = python2.6
commands =
@@ -109,8 +66,46 @@ commands =
deps = virtualenv
[testenv:pep8]
-basepython = python3.4
+basepython = python3.5
commands =
flake8 pyramid/
deps =
flake8
+
+[testenv:docs]
+basepython = python3.5
+whitelist_externals = make
+commands =
+ pip install pyramid[docs]
+ make -C docs html epub BUILDDIR={envdir} "SPHINXOPTS=-W -E"
+
+# we separate coverage into its own testenv because a) "last run wins" wrt
+# cobertura jenkins reporting and b) pypy and jython can't handle any
+# combination of versions of coverage and nosexcover that i can find.
+[testenv:py2-cover]
+commands =
+ pip install pyramid[testing]
+ coverage run --source=pyramid {envbindir}/nosetests
+ coverage xml -o coverage-py2.xml
+setenv =
+ COVERAGE_FILE=.coverage.py2
+
+[testenv:py3-cover]
+commands =
+ pip install pyramid[testing]
+ coverage run --source=pyramid {envbindir}/nosetests
+ coverage xml -o coverage-py3.xml
+setenv =
+ COVERAGE_FILE=.coverage.py3
+
+[testenv:coverage]
+basepython = python3.5
+commands =
+ coverage erase
+ coverage combine
+ coverage xml
+ coverage report --show-missing --fail-under=100
+deps =
+ coverage
+setenv =
+ COVERAGE_FILE=.coverage