summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Bangert <ben@groovie.org>2020-07-30 11:01:37 -0700
committerGitHub <noreply@github.com>2020-07-30 11:01:37 -0700
commit12758f026dd4ea59398d2ec28d38fbc3f0e7c80e (patch)
tree18c6727921013bcc16444698a9e70977b26f4df3
parent3c01ff0ecee7abdd25a5812c5d3a9bfcb1df732d (diff)
parentd312ea6dfea57a11b75d25f8b1c0c89d6cf854e6 (diff)
downloadroutes-12758f026dd4ea59398d2ec28d38fbc3f0e7c80e.tar.gz
Merge branch 'master' into fix-python-warnings
-rw-r--r--routes/mapper.py6
-rw-r--r--routes/route.py1
-rw-r--r--setup.py2
-rw-r--r--tests/test_functional/test_explicit_use.py30
4 files changed, 36 insertions, 3 deletions
diff --git a/routes/mapper.py b/routes/mapper.py
index cf4dcf1..8916fd3 100644
--- a/routes/mapper.py
+++ b/routes/mapper.py
@@ -490,7 +490,11 @@ class Mapper(SubMapperParent):
routepath = path_prefix + route.routepath
else:
routepath = route.routepath
- self.connect(route.name, routepath, **route._kargs)
+ self.connect(route.name,
+ routepath,
+ conditions=route.conditions,
+ **route._kargs
+ )
def make_route(self, *args, **kargs):
"""Make a new Route object
diff --git a/routes/route.py b/routes/route.py
index b03e1cf..cf6df10 100644
--- a/routes/route.py
+++ b/routes/route.py
@@ -1,4 +1,5 @@
import re
+import sys
import six
from six.moves.urllib import parse as urlparse
diff --git a/setup.py b/setup.py
index 92b9ee2..0b527da 100644
--- a/setup.py
+++ b/setup.py
@@ -56,7 +56,7 @@ setup(name="Routes",
test_suite="nose.collector",
include_package_data=True,
zip_safe=False,
- tests_require=['nose', 'webtest', 'webob', 'coverage'],
+ tests_require=["soupsieve<2.0", 'nose', 'webtest', 'webob', 'coverage'],
install_requires=[
"six",
"repoze.lru>=0.3"
diff --git a/tests/test_functional/test_explicit_use.py b/tests/test_functional/test_explicit_use.py
index ccd3b7a..b1e1cd7 100644
--- a/tests/test_functional/test_explicit_use.py
+++ b/tests/test_functional/test_explicit_use.py
@@ -1,6 +1,6 @@
"""test_explicit_use"""
import os, sys, time, unittest
-from nose.tools import eq_, assert_raises
+from nose.tools import eq_, assert_raises, assert_is_none
from routes import *
from routes.route import Route
@@ -101,6 +101,34 @@ class TestUtils(unittest.TestCase):
map.extend(routes)
eq_(map.match('/foo'), {})
+ def test_add_routes_conditions_unmet(self):
+ map = Mapper(explicit=True)
+ map.minimization = False
+ routes = [
+ Route('foo', '/foo', conditions=dict(method=["POST"]))
+ ]
+ environ = {
+ 'HTTP_HOST': 'localhost.com',
+ 'PATH_INFO': '/foo',
+ 'REQUEST_METHOD': 'GET',
+ }
+ map.extend(routes)
+ assert_is_none(map.match('/foo', environ=environ))
+
+ def test_add_routes_conditions_met(self):
+ map = Mapper(explicit=True)
+ map.minimization = False
+ routes = [
+ Route('foo', '/foo', conditions=dict(method=["POST"]))
+ ]
+ environ = {
+ 'HTTP_HOST': 'localhost.com',
+ 'PATH_INFO': '/foo',
+ 'REQUEST_METHOD': 'POST',
+ }
+ map.extend(routes)
+ eq_(map.match('/foo', environ=environ), {})
+
def test_using_func(self):
def fred(view):
pass