summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.rst21
-rw-r--r--docs/news.txt28
-rw-r--r--paste/auth/digest.py2
-rw-r--r--paste/fixture.py2
-rwxr-xr-xpaste/httpserver.py6
-rw-r--r--setup.py6
-rw-r--r--tests/test_fileapp.py2
-rw-r--r--tests/test_proxy.py8
-rw-r--r--tox.ini2
9 files changed, 54 insertions, 23 deletions
diff --git a/README.rst b/README.rst
index 3b2ab8f..a856473 100644
--- a/README.rst
+++ b/README.rst
@@ -1,3 +1,8 @@
+
+*Paste is in maintenance mode and recently moved from bitbucket to github.
+Patches are accepted to keep it on life support, but for the most part, please
+consider using other options.*
+
Paste provides several pieces of "middleware" (or filters) that can be nested
to build web applications. Each piece of middleware uses the WSGI (`PEP 333`_)
interface, and should be compatible with other middleware based on those
@@ -5,19 +10,14 @@ interfaces.
.. _PEP 333: http://www.python.org/dev/peps/pep-0333.html
-* `Paste project at Bitbucket (source code, bug tracker)
- <https://bitbucket.org/ianb/paste/>`_
+* `Paste project at GitHub (source code, bug tracker)
+ <https://github.com/cdent/paste/>`_
* `Paste on the Python Cheeseshop (PyPI)
<https://pypi.python.org/pypi/Paste>`_
-* `Paste documentation
- <http://pythonpaste.org/>`_
See also:
-* `PasteDeploy <http://pythonpaste.org/deploy/>`_
-* `PasteScript <http://pythonpaste.org/script/>`_
-* `WebTest <http://webtest.pythonpaste.org/>`_
-* `WebOb <http://docs.webob.org/>`_
+* `WebOb <https://docs.pylonsproject.org/projects/webob>`_
Includes these features...
@@ -103,7 +103,4 @@ Other Tools
* A class for generating and traversing URLs, and creating associated
HTML code, in ``paste.url``
-The official development repo is at https://bitbucket.org/ianb/paste.
-
-For the latest changes see the `news file
-<http://pythonpaste.org/news.html>`_.
+The official development repo is at https://github.com/cdent/paste.
diff --git a/docs/news.txt b/docs/news.txt
index 83ff121..d17001c 100644
--- a/docs/news.txt
+++ b/docs/news.txt
@@ -3,6 +3,34 @@ News
.. contents::
+2.0.3
+-----
+
+* #26: Change six requirement to >=1.4.0
+ from [Linus Heckemann](https://bitbucket.org/sphalerite/)
+ https://bitbucket.org/ianb/paste/pull-requests/26/change-six-requirement-to-140/diff
+
+* #28: Py3k fixes
+ from [Nils Philippsen](https://bitbucket.org/nilsph/)
+ https://bitbucket.org/ianb/paste/pull-requests/28/py3k-fixes/diff
+
+* #29: paste.wsgilib.add_close: Add __next__ method to support using `add_close` objects as iterators on Python 3.
+ fixes https://bitbucket.org/ianb/pastedeploy/issues/18/py3-test_config_middleware-failed
+ from [Marc Abramowitz](https://bitbucket.org/msabramo/)
+ https://bitbucket.org/ianb/paste/pull-requests/29/pastewsgilibadd_close-add-__next__-method/diff
+
+* #30: tox.ini: Add py35 to envlist
+ from [Marc Abramowitz](https://bitbucket.org/msabramo/)
+ https://bitbucket.org/ianb/paste/pull-requests/30/toxini-add-py35-to-envlist/diff
+
+* #31: Enable testing with pypy
+ from [Marc Abramowitz](https://bitbucket.org/msabramo/)
+ https://bitbucket.org/ianb/paste/pull-requests/31/enable-testing-with-pypy/diff
+
+* #33: tox.ini: Measure test coveraage
+ from [Marc Abramowitz](https://bitbucket.org/msabramo/)
+ https://bitbucket.org/ianb/paste/pull-requests/33/toxini-measure-test-coverage/diff
+
2.0.2
-----
diff --git a/paste/auth/digest.py b/paste/auth/digest.py
index 85e0362..553bd88 100644
--- a/paste/auth/digest.py
+++ b/paste/auth/digest.py
@@ -57,7 +57,7 @@ def _split_auth_string(auth_string):
prev = item
yield prev.strip()
- raise StopIteration
+ return
def _auth_to_kv_pairs(auth_string):
""" split a digest auth string into key, value pairs """
diff --git a/paste/fixture.py b/paste/fixture.py
index 363f119..8cff72f 100644
--- a/paste/fixture.py
+++ b/paste/fixture.py
@@ -852,7 +852,7 @@ class TestResponse(object):
print("Actual response (has %r)" % no_s, file=sys.stderr)
print(self, file=sys.stderr)
raise IndexError(
- "Body contains string %r" % s)
+ "Body contains string %r" % no_s)
def __repr__(self):
body = self.body
diff --git a/paste/httpserver.py b/paste/httpserver.py
index 035d818..11489b0 100755
--- a/paste/httpserver.py
+++ b/paste/httpserver.py
@@ -734,7 +734,11 @@ class ThreadPool(object):
raise RuntimeError(
"Cannot kill worker; killthread/ctypes not available")
thread_obj = threading._active.get(thread_id)
- killthread.async_raise(thread_id, SystemExit)
+ try:
+ killthread.async_raise(thread_id, SystemExit)
+ except ValueError:
+ # invalid thread id -- the thread has died in the mean time
+ pass
try:
del self.worker_tracker[thread_id]
except KeyError:
diff --git a/setup.py b/setup.py
index 24ad087..786e72f 100644
--- a/setup.py
+++ b/setup.py
@@ -7,6 +7,8 @@
# the SCM (Mercurial): update MANIFEST.in if needed
# - update changelog: docs/news.txt
#
+# TODO(cdent): Update for github.
+#
# - hg ci
# - hg tag VERSION
# - hg push
@@ -16,7 +18,7 @@
# - increment version in setup.py (__version__)
# - hg ci && hg push
-__version__ = '2.0.2'
+__version__ = '2.0.3'
from setuptools import setup, find_packages
import sys, os
@@ -49,7 +51,7 @@ setup(name="Paste",
keywords='web application server wsgi',
author="Ian Bicking",
author_email="ianb@colorstudy.com",
- url="http://pythonpaste.org",
+ url="https://pypi.org/project/Paste/",
license="MIT",
packages=find_packages(exclude=['ez_setup', 'examples', 'packages', 'tests*']),
package_data=finddata.find_package_data(
diff --git a/tests/test_fileapp.py b/tests/test_fileapp.py
index bdd7510..ee7da6a 100644
--- a/tests/test_fileapp.py
+++ b/tests/test_fileapp.py
@@ -95,7 +95,7 @@ def test_modified():
assert 400 == res.status and b"ill-formed timestamp" in res.body
res = harness.get("/",status=400,
headers={'if-modified-since':
- 'Thu, 22 Dec 2030 01:01:01 GMT'})
+ 'Thu, 22 Dec 3030 01:01:01 GMT'})
assert 400 == res.status and b"check your system clock" in res.body
def test_file():
diff --git a/tests/test_proxy.py b/tests/test_proxy.py
index 44db9f3..844f9a0 100644
--- a/tests/test_proxy.py
+++ b/tests/test_proxy.py
@@ -1,12 +1,12 @@
from paste import proxy
from paste.fixture import TestApp
-def test_paste_website():
+def test_proxy_to_website():
# Not the most robust test...
# need to test things like POSTing to pages, and getting from pages
# that don't set content-length.
- app = proxy.Proxy('http://pythonpaste.org')
+ app = proxy.Proxy('http://httpbin.org')
app = TestApp(app)
res = app.get('/')
- assert 'documentation' in res
-
+ # httpbin is a react app now, so hard to read
+ assert '<title>httpbin.org</title>' in res
diff --git a/tox.ini b/tox.ini
index 6da0fa1..c154d05 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
[tox]
-envlist = py26, py27, py34, py35, pypy
+envlist = py26, py27, py34, py35, py36, py37, pypy
[testenv]
deps =