class TestExpose(unittest.TestCase): """Test App.expose.""" def setUp(self): self.app = App() def test_expose_method(self): """Make sure the original method is preserved.""" f = lambda request: None f_ = self.app.expose('/test_expose')(f) self.assert_(f_ is f) def test_expose_methods(self): """Make sure invalid methods raise an exception.""" self.assertRaises(Exception, self.app.expose, '/foo', 'CHEESE') def test_expose_method_maps(self): """Make sure patterns are added to the correct maps.""" url, method = ('/cheese', 'GET') old_len = len(self.app.map[method]._patterns) f = lambda request: None self.app.expose(url, method)(f) self.assert_(len(self.app.map[method]._patterns) > old_len) self.assert_(url in self.app.map[method]._patterns) self.assert_(self.app.map[method]._patterns[url][1] is f) def test_expose_method_decorates(self): """Make sure functions aren't decorated when added.""" url, method = ('/shop', 'GET') old_len = len(self.app.map[method]._patterns) f = lambda request: None self.app.expose(url, method)(f) self.assert_(self.app.map[method]._patterns[url][1] is f)
def test_success(self): response = Response(body="Hi") app = App() app.expose('/')(lambda request: response) resp = app.route({'REQUEST_METHOD': 'GET', 'PATH_INFO': '/'}) self.assertTrue(resp is response)
class GetEndpointsTest(unittest.TestCase): """Test _get_endpoints.""" def setUp(self): self.app = App() def test_endpoints(self): self.app.expose('foo')(lambda request: Response()) self.app.expose('bar')(lambda request: Response()) endpoints = self.app.endpoints() self.assertTrue('GET foo' in endpoints.keys()) self.assertTrue('GET bar' in endpoints.keys())