Esempio n. 1
0
    def test_register_absolute_path(self):
        from pyramid_skins.configuration import register_path
        register_path(self.config, os.path.join(path, 'skins'))

        from pyramid_skins.interfaces import ISkinObject
        inst = self.config.registry.queryUtility(ISkinObject, name="index.pt")
        self.assertTrue(inst is not None)
Esempio n. 2
0
    def test_register_asset_spec(self):
        from pyramid_skins.configuration import register_path
        register_path(self.config, "pyramid_skins:tests/skins")

        from pyramid_skins.interfaces import ISkinObject
        inst = self.config.registry.queryUtility(ISkinObject, name="index.pt")
        self.assertTrue(inst is not None)
Esempio n. 3
0
    def test_register_view(self):
        name = 'index.pt'
        from pyramid_skins.configuration import register_path
        register_path(self.config, os.path.join(path, 'skins'), indexes=[name])

        from pyramid.testing import DummyRequest
        from pyramid.view import render_view

        response = render_view('Hello world!', DummyRequest(), "")
        self.assertTrue(response is not None)
Esempio n. 4
0
    def test_renderer(self):
        from pyramid_skins.configuration import register_path
        register_path(self.config, os.path.join(path, 'skins'))

        from pyramid_skins.renderer import renderer_factory
        self.config.add_renderer('skin', renderer_factory)

        def index(context, request):
            return {'context': context}

        self.config.add_view(index, name='index', renderer='skin')

        from pyramid.view import render_view
        from pyramid.threadlocal import get_current_request
        result = render_view('Hello world!', get_current_request(), 'index')
        self.assertTrue(b'Hello world' in result)
Esempio n. 5
0
    def test_renderer(self):
        from pyramid_skins.configuration import register_path
        register_path(self.config, os.path.join(path, 'skins'))

        from pyramid_skins.renderer import renderer_factory
        self.config.add_renderer('skin', renderer_factory)

        def index(context, request):
            return {'context': context}

        self.config.add_view(index, name='index', renderer='skin')

        from pyramid.view import render_view
        from pyramid.threadlocal import get_current_request
        result = render_view('Hello world!', get_current_request(), 'index')
        self.assertTrue('Hello world' in result)
Esempio n. 6
0
    def test_multiple_skins_other(self):
        from pyramid.threadlocal import get_current_request
        from pyramid.view import render_view
        from pyramid_skins.configuration import register_path
        from pyramid_skins.renderer import renderer_factory

        register_path(self.config, os.path.join(path, 'skins'))
        skins = self.register_skins([
            os.path.join(path, 'alt_skins'),
            os.path.join(path, 'other_skins')])
        self.config.add_renderer('skin', renderer_factory)

        def index(context, request):
            return {'context': context}

        self.config.add_view(index, name='index', renderer='skin')

        alsoProvides(get_current_request(), skins['other_skins']['interface'])
        result = render_view('Hello world!', get_current_request(), 'index')
        self.assertTrue('Other' in result)
Esempio n. 7
0
    def test_multiple_skins_other(self):
        from pyramid.threadlocal import get_current_request
        from pyramid.view import render_view
        from pyramid_skins.configuration import register_path
        from pyramid_skins.renderer import renderer_factory

        register_path(self.config, os.path.join(path, 'skins'))
        skins = self.register_skins([
            os.path.join(path, 'alt_skins'),
            os.path.join(path, 'other_skins')
        ])
        self.config.add_renderer('skin', renderer_factory)

        def index(context, request):
            return {'context': context}

        self.config.add_view(index, name='index', renderer='skin')

        alsoProvides(get_current_request(), skins['other_skins']['interface'])
        result = render_view('Hello world!', get_current_request(), 'index')
        self.assertTrue(b'Other' in result)
Esempio n. 8
0
    def test_skin_reload(self):
        from pyramid_skins.configuration import register_path
        import shutil
        import tempfile

        register_path(self.config, os.path.join(path, 'skins'))
        tmp = tempfile.mkdtemp()

        try:
            skins_dir = os.path.join(tmp, 'skins')
            os.mkdir(skins_dir)
            with open(os.path.join(skins_dir, 'index.pt'), 'wb') as f:
                f.write(b'<html><title>Alternative</title></html>')

            skins = self.register_skins([skins_dir])

            from pyramid_skins.renderer import renderer_factory
            self.config.add_renderer('skin', renderer_factory)

            def index(context, request):
                return {'context': context}

            self.config.add_view(index, name='index', renderer='skin')

            from pyramid.view import render_view
            from pyramid.threadlocal import get_current_request
            alsoProvides(get_current_request(), skins['skins']['interface'])
            result = render_view('Hello world!', get_current_request(),
                                 'index')
            self.assertTrue(b'Alternative' in result)
            with open(os.path.join(skins_dir, 'index.pt'), 'wb') as f:
                f.write(b'<html><title>Other</title></html>')
            skins['skins']['skin'].configure()
            result = render_view('Hello world!', get_current_request(),
                                 'index')
            self.assertTrue(b'Other' in result)
        finally:
            shutil.rmtree(tmp)
Esempio n. 9
0
    def test_skin_reload(self):
        from pyramid_skins.configuration import register_path
        import shutil
        import tempfile

        register_path(self.config, os.path.join(path, 'skins'))
        tmp = tempfile.mkdtemp()

        try:
            skins_dir = os.path.join(tmp, 'skins')
            os.mkdir(skins_dir)
            with open(os.path.join(skins_dir, 'index.pt'), 'wb') as f:
                f.write('<html><title>Alternative</title></html>')

            skins = self.register_skins([skins_dir])

            from pyramid_skins.renderer import renderer_factory
            self.config.add_renderer('skin', renderer_factory)

            def index(context, request):
                return {'context': context}

            self.config.add_view(index, name='index', renderer='skin')

            from pyramid.view import render_view
            from pyramid.threadlocal import get_current_request
            alsoProvides(get_current_request(), skins['skins']['interface'])
            result = render_view('Hello world!', get_current_request(), 'index')
            self.assertTrue('Alternative' in result)
            with open(os.path.join(skins_dir, 'index.pt'), 'wb') as f:
                f.write('<html><title>Other</title></html>')
            skins['skins']['skin'].configure()
            result = render_view('Hello world!', get_current_request(), 'index')
            self.assertTrue('Other' in result)
        finally:
            shutil.rmtree(tmp)
Esempio n. 10
0
    def register_skins(self, paths):
        from pyramid.interfaces import IRequest
        from pyramid_skins.configuration import register_path

        skins = {}
        for path in paths:
            name = os.path.basename(path)
            class interface(IRequest):
                __doc__ = """ marker interface for custom theme """
            interface.__name__ = 'IThemeRequest-%s' % name
            skin = register_path(self.config, path, request_type=interface)
            skins[name] = dict(
                skin=skin,
                interface=interface)
        return skins
Esempio n. 11
0
    def register_skins(self, paths):
        from pyramid.interfaces import IRequest
        from pyramid_skins.configuration import register_path

        skins = {}
        for path in paths:
            name = os.path.basename(path)

            class interface(IRequest):
                __doc__ = """ marker interface for custom theme """

            interface.__name__ = 'IThemeRequest-%s' % name
            skin = register_path(self.config, path, request_type=interface)
            skins[name] = dict(skin=skin, interface=interface)
        return skins
Esempio n. 12
0
    def register_skins(self, paths):
        from pyramid.interfaces import IRequest
        from pyramid_skins.configuration import register_path
        import new

        skins = {}
        for path in paths:
            name = os.path.basename(path)
            interface = new.classobj(
                'IThemeRequest-%s' % name,
                (IRequest, ),
                dict(__doc__=""" marker interface for custom theme """))
            skin = register_path(self.config, path, request_type=interface)
            skins[name] = dict(
                skin=skin,
                interface=interface)
        return skins