diff --git a/openerpweb/openerpweb.py b/openerpweb/openerpweb.py index f966501f72c..89706a9366c 100644 --- a/openerpweb/openerpweb.py +++ b/openerpweb/openerpweb.py @@ -265,7 +265,7 @@ class Root(object): if getattr(m, 'exposed', 0): print "Calling", ps, c, meth, m return m(**kw) - + raise cherrypy.NotFound('/' + '/'.join(l)) else: raise cherrypy.HTTPRedirect('/base/static/openerp/base.html', 301) default.exposed = True diff --git a/openerpweb/tests/test_model.py b/openerpweb/tests/test_model.py index 1d0d058b092..d84f3a36c5d 100644 --- a/openerpweb/tests/test_model.py +++ b/openerpweb/tests/test_model.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +import cherrypy import mock import unittest2 import openerpweb.openerpweb @@ -18,3 +19,20 @@ class OpenERPModelTest(unittest2.TestCase): Model.read([42]) session.execute.assert_called_once_with( 'a.b', 'read', [42]) + +class DispatcherTest(unittest2.case.TestCase): + def test_default_redirect(self): + self.assertRaises( + cherrypy.HTTPRedirect, + openerpweb.openerpweb.Root().default) + def test_serve_static_missing(self): + self.assertRaises( + cherrypy.NotFound, + openerpweb.openerpweb.Root().default, + 'does-not-exist', 'static', 'bar') + def test_serve_controller_missing(self): + self.assertRaises( + cherrypy.NotFound, + openerpweb.openerpweb.Root().default, + 'controller', 'does', 'not', 'exist') +