def test_interface_view_registered_default(self):
        """If the object supports an interface, and the view is registered as
        the default view, when a view is requested where no name is specified,
        the default view is returned."""

        class IHasInterface(Interface):
            pass

        class HasInterface(object):
            implements(IHasInterface)

        class AView(object):
            for_interface = IHasInterface
            name = "name"
            is_default = True

            def __init__(self, *args):
                pass

            def initialize(self):
                self.initialized = True

        register_view(AView)
        obj = HasInterface()
        view = get_view(obj, None, None)
        self.assertIsInstance(view, AView)
        self.assertTrue(view.initialized)
    def test_interface_view_registered(self):
        """If the object supports an interface, and the view is registered,
        make sure that the view is returned when asked for."""

        class IHasInterface(Interface):
            pass

        class HasInterface(object):
            implements(IHasInterface)

        class AView(object):
            for_interface = IHasInterface
            name = "name"

            def __init__(self, *args):
                pass

            def initialize(self):
                self.initialized = True

        register_view(AView)
        obj = HasInterface()
        view = get_view(obj, "name", None)
        self.assertIsInstance(view, AView)
        self.assertTrue(view.initialized)
    def test_no_interfaces(self):
        """If the object supports no interfaces, there is no view."""

        class NoInterfaces(object):
            pass

        obj = NoInterfaces()
        self.assertIs(None, get_view(obj, None, None))
    def test_interface_not_registered(self):
        """If the object supports an interface, but that interface is not
        registered, we get no view."""

        class IHasInterface(Interface):
            pass

        class HasInterface(object):
            implements(IHasInterface)

        obj = HasInterface()
        self.assertIs(None, get_view(obj, None, None))
    def test_registration(self):
        """Create a view class, and make sure it is registered."""

        class IHasInterface(Interface):
            pass

        class HasInterface(object):
            implements(IHasInterface)

        class AView(BaseView):
            for_interface = IHasInterface
            name = "name"

        obj = HasInterface()
        view = get_view(obj, "name", None)
        self.assertIsInstance(view, AView)
Exemple #6
0
 def _get_view(self, request, path):
     """Get the view for the path specified."""
     resource_path, action = parse_url(path)
     model = self.resource_factory.get_resource_at_path(resource_path)
     return get_view(model, action, request, self.execution_context)
Exemple #7
0
 def get_view(self, factory, path, name=None, base_url=None):
     info = factory.get_resource_at_path(path)
     request = Request.blank(path, base_url=base_url)
     return get_view(info, name, request)