summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2010-01-20 05:33:45 +0000
committerChris McDonough <chrism@agendaless.com>2010-01-20 05:33:45 +0000
commit74a8f69ebc691c0850ab72d8bca421e7b4de52a5 (patch)
tree2aa0c9f3d7f222b4f815929d0b69e124053eb857
parent2d5424869375bb9d3c4b24489aa164d9b8095e29 (diff)
downloadpyramid-74a8f69ebc691c0850ab72d8bca421e7b4de52a5.tar.gz
pyramid-74a8f69ebc691c0850ab72d8bca421e7b4de52a5.tar.bz2
pyramid-74a8f69ebc691c0850ab72d8bca421e7b4de52a5.zip
Add (non-failing) tests for ordering issue reported indirectly via http://labs.creativecommons.org/2010/01/13/cc-engine-and-web-non-frameworks/ .. can't seem to repeat.
-rw-r--r--repoze/bfg/tests/ccbugapp/__init__.py1
-rw-r--r--repoze/bfg/tests/ccbugapp/configure.zcml15
-rw-r--r--repoze/bfg/tests/ccbugapp/views.py10
-rw-r--r--repoze/bfg/tests/test_integration.py20
-rw-r--r--repoze/bfg/tests/test_urldispatch.py21
5 files changed, 65 insertions, 2 deletions
diff --git a/repoze/bfg/tests/ccbugapp/__init__.py b/repoze/bfg/tests/ccbugapp/__init__.py
new file mode 100644
index 000000000..546616b2c
--- /dev/null
+++ b/repoze/bfg/tests/ccbugapp/__init__.py
@@ -0,0 +1 @@
+# fixture application
diff --git a/repoze/bfg/tests/ccbugapp/configure.zcml b/repoze/bfg/tests/ccbugapp/configure.zcml
new file mode 100644
index 000000000..cb9ca6f1d
--- /dev/null
+++ b/repoze/bfg/tests/ccbugapp/configure.zcml
@@ -0,0 +1,15 @@
+<configure xmlns="http://namespaces.repoze.org/bfg">
+
+ <include package="repoze.bfg.includes" />
+
+ <route
+ view=".views.rdf_view"
+ path="licenses/:license_code/:license_version/rdf"
+ name="rdf" />
+
+ <route
+ view=".views.juri_view"
+ path="licenses/:license_code/:license_version/:jurisdiction"
+ name="juri" />
+
+</configure>
diff --git a/repoze/bfg/tests/ccbugapp/views.py b/repoze/bfg/tests/ccbugapp/views.py
new file mode 100644
index 000000000..4a6939ac2
--- /dev/null
+++ b/repoze/bfg/tests/ccbugapp/views.py
@@ -0,0 +1,10 @@
+from webob import Response
+
+def rdf_view(request):
+ """ """
+ return Response('rdf')
+
+def juri_view(request):
+ """ """
+ return Response('juri')
+
diff --git a/repoze/bfg/tests/test_integration.py b/repoze/bfg/tests/test_integration.py
index da866f8d0..1c6fdd01e 100644
--- a/repoze/bfg/tests/test_integration.py
+++ b/repoze/bfg/tests/test_integration.py
@@ -62,13 +62,13 @@ class TestStaticApp(unittest.TestCase):
result.body,
open(os.path.join(here, 'fixtures/minimal.pt'), 'r').read())
-class TestFixtureApp(unittest.TestCase):
+class TwillBase(unittest.TestCase):
def setUp(self):
import sys
import twill
from repoze.bfg.configuration import Configurator
config = Configurator()
- config.load_zcml('repoze.bfg.tests.fixtureapp:configure.zcml')
+ config.load_zcml(self.config)
twill.add_wsgi_intercept('localhost', 6543, config.make_wsgi_app)
if sys.platform is 'win32': # pragma: no cover
out = open('nul:', 'wb')
@@ -85,6 +85,8 @@ class TestFixtureApp(unittest.TestCase):
twill.set_output(None)
testing.tearDown()
+class TestFixtureApp(TwillBase):
+ config = 'repoze.bfg.tests.fixtureapp:configure.zcml'
def test_it(self):
import twill.commands
browser = twill.commands.get_browser()
@@ -97,6 +99,20 @@ class TestFixtureApp(unittest.TestCase):
browser.go('http://localhost:6543/dummyskin.html')
self.assertEqual(browser.get_code(), 404)
+class TestCCBug(TwillBase):
+ # "unordered" as reported in IRC by author of
+ # http://labs.creativecommons.org/2010/01/13/cc-engine-and-web-non-frameworks/
+ config = 'repoze.bfg.tests.ccbugapp:configure.zcml'
+ def test_it(self):
+ import twill.commands
+ browser = twill.commands.get_browser()
+ browser.go('http://localhost:6543/licenses/1/v1/rdf')
+ self.assertEqual(browser.get_code(), 200)
+ self.assertEqual(browser.get_html(), 'rdf')
+ browser.go('http://localhost:6543/licenses/1/v1/juri')
+ self.assertEqual(browser.get_code(), 200)
+ self.assertEqual(browser.get_html(), 'juri')
+
class DummyContext(object):
pass
diff --git a/repoze/bfg/tests/test_urldispatch.py b/repoze/bfg/tests/test_urldispatch.py
index 861a4fd05..c1fa66aa7 100644
--- a/repoze/bfg/tests/test_urldispatch.py
+++ b/repoze/bfg/tests/test_urldispatch.py
@@ -108,6 +108,27 @@ class RoutesMapperTests(unittest.TestCase):
self.assertEqual(result['match']['action'], 'action1')
self.assertEqual(result['match']['article'], 'article1')
+ def test_cc_bug(self):
+ # "unordered" as reported in IRC by author of
+ # http://labs.creativecommons.org/2010/01/13/cc-engine-and-web-non-frameworks/
+ mapper = self._makeOne()
+ mapper.connect('licenses/:license_code/:license_version/rdf', 'rdf')
+ mapper.connect('licenses/:license_code/:license_version/:jurisdiction',
+ 'juri')
+
+ request = self._getRequest(PATH_INFO='/licenses/1/v2/rdf')
+ result = mapper(request)
+ self.assertEqual(result['route'], mapper.routes['rdf'])
+ self.assertEqual(result['match']['license_code'], '1')
+ self.assertEqual(result['match']['license_version'], 'v2')
+
+ request = self._getRequest(PATH_INFO='/licenses/1/v2/usa')
+ result = mapper(request)
+ self.assertEqual(result['route'], mapper.routes['juri'])
+ self.assertEqual(result['match']['license_code'], '1')
+ self.assertEqual(result['match']['license_version'], 'v2')
+ self.assertEqual(result['match']['jurisdiction'], 'usa')
+
def test_root_route_matches(self):
mapper = self._makeOne()
mapper.connect('', 'root')