コード例 #1
0
ファイル: test_traversal.py プロジェクト: chrisrossi/happy
 def test_default_view(self):
     root = DummyModel()
     root_factory = lambda request: root
     from happy.traversal import TraversalDispatcher
     dispatcher = TraversalDispatcher(root_factory)
     calls = []
     def view(request, context):
         calls.append((request, context))
     dispatcher.register(view, DummyModel)
     from webob import Request
     request = Request.blank('/')
     dispatcher(request)
     self.assertEqual(calls[0][1], root)
コード例 #2
0
ファイル: test_traversal.py プロジェクト: chrisrossi/happy
    def test_named_view(self):
        root = DummyModel()
        root_factory = lambda request: root
        from happy.traversal import TraversalDispatcher
        dispatcher = TraversalDispatcher(root_factory)
        def view(request, context):
            return 'Hello'

        dispatcher.register(view, DummyModel, 'hello')
        from webob import Request
        response = dispatcher(Request.blank('/'))
        self.assertEqual(response, None)
        response = dispatcher(Request.blank('/hello'))
        self.assertEqual(response, 'Hello')
コード例 #3
0
ファイル: test_traversal.py プロジェクト: chrisrossi/happy
 def test_default_view_with_subpath(self):
     root = DummyModel()
     root_factory = lambda request: root
     from happy.traversal import TraversalDispatcher
     dispatcher = TraversalDispatcher(root_factory)
     calls = []
     def view(request, context):
         calls.append((request, context))
     dispatcher.register(view, DummyModel)
     from webob import Request
     request = Request.blank('/foo/bar')
     dispatcher(request)
     self.assertEqual(len(calls), 1)
     request, context = calls[0]
     self.assertEqual(request.subpath, ['foo', 'bar'])
     self.assertEqual(context, root)
コード例 #4
0
ファイル: application.py プロジェクト: chrisrossi/edwin
    def __init__(self, app_context):
        self.app_context = app_context

        # Set up skin
        static_version = str(int(time.time()))
        static = SkinApplication(
            Skin('edwin.views:static'),
            expires_timedelta=datetime.timedelta(days=3650)
        )
        templates = Templates(Skin('edwin.views:templates'), PageTemplateFile)
        app_context.static_version = static_version
        app_context.templates = templates

        subapps = RoutesDispatcher(rewrite_paths=True)
        subapps.register(static, 'static', '/static/%s/*' % static_version)

        # Image application (serves images and creates sizes)
        from edwin.views.image import ImageApplication
        images = ImageApplication(app_context.image_cache_dir)
        if not os.path.exists(app_context.image_cache_dir):
            os.mkdir(app_context.image_cache_dir)

        # Routes
        from edwin.views.home import homepage_view
        from edwin.views.month import month_view
        from edwin.views.undo import undo_view
        routes = RoutesDispatcher()
        routes.register(homepage_view, 'homepage', '/')
        routes.register(month_view, 'month', '/archive/:year/:month/')
        routes.register(images, 'images', '/image/:fname/*')
        routes.register(undo_view, 'undo', '/undo/:code')

        # Use traversal for albums and photos
        from edwin.models.album import Album
        from edwin.models.photo import Photo
        from edwin.views.album import album_view
        from edwin.views.album import edit_album_view
        from edwin.views.album import delete_photos_view
        from edwin.views.photo import delete_photo_view
        from edwin.views.photo import photo_view
        from edwin.views.photo import edit_photo_view
        from edwin.views.photo import download_photo_view
        def root_factory(request):
            return app_context.photos
        photos = TraversalDispatcher(root_factory)
        photos.register(album_view, Album)
        photos.register(edit_album_view, Album, 'edit.json')
        photos.register(delete_photos_view, Album, 'delete_photos')
        photos.register(photo_view, Photo)
        photos.register(edit_photo_view, Photo, 'edit.json')
        photos.register(download_photo_view, Photo, 'dl')
        photos.register(delete_photo_view, Photo, 'delete')
        self.responders = [
            subapps,
            routes,
            photos,
        ]

        app_context.routes = routes
        app_context.images = images