diff options
| author | Steve Piercy <web@stevepiercy.com> | 2015-11-25 20:52:14 -0800 |
|---|---|---|
| committer | Steve Piercy <web@stevepiercy.com> | 2015-11-25 20:52:14 -0800 |
| commit | 9a51bff66332e4b2b9fb080ec74512347d722294 (patch) | |
| tree | 8212ea4f9c6c096490fd9a27841922cf50ea3416 | |
| parent | 84a168ef5fd4bdd487226f43b8c0e16237e82e18 (diff) | |
| parent | 2d9ed3f7c1fe314bef0f25c58bfa0a98dda83acc (diff) | |
| download | pyramid-9a51bff66332e4b2b9fb080ec74512347d722294.tar.gz pyramid-9a51bff66332e4b2b9fb080ec74512347d722294.tar.bz2 pyramid-9a51bff66332e4b2b9fb080ec74512347d722294.zip | |
Merge remote-tracking branch 'upstream/master'
| -rw-r--r-- | .travis.yml | 2 | ||||
| -rw-r--r-- | HACKING.txt | 2 | ||||
| -rwxr-xr-x | builddocs.sh | 2 | ||||
| -rw-r--r-- | docs/api/session.rst | 1 | ||||
| -rw-r--r-- | pyramid/session.py | 18 | ||||
| -rw-r--r-- | tox.ini | 87 |
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, @@ -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 |
