Exemple #1
0
    def test_widget_renderer_for_page(self):

        #mock context
        context = {}
        context["page"] = self.page

        #mock request
        request = type('request', (object, ), {'user': self._user})
        context["request"] = request

        #render widget, there should be only one widget i.e test_widget
        #This returns all widget's in the mentioned slot

        widgets = render_widgets_for_slot(self.slot, Context(context))

        #only one widget item is published
        self.assertEqual(len(widgets), 1)

        self.assertEqual(widgets[0]['widget'].status, CONTENT_STATUS_PUBLISHED)

        self.assertEqual(
            widgets[0]['widget'].display_title,
            self.test_widgets[self.widget_count - 1].display_title)

        #check if rendered content is correct
        self.assertEqual(widgets[0]['content'], "Test Widget Rendered")
 def render(self, ctx):
     context = ctx.new(ctx)
     prerendered = self.nodelist.render(context)
     wtag = re.compile("{{((?:[a-z][a-z0-9_]*))}}")
     output = []
     lastPos = 0
     for m in wtag.finditer(prerendered):
         slot = m.group(1)
         page = context.get('page', None)
         if context.has_key("slot"):
             slot = "%s/%s" % (context["slot"], slot)
         context['slot'] = slot
         user = context['request'].user
         rendered = render_widgets_for_slot(slot, context)
         if rendered:
             context['widgets'] = rendered
             context['contains_widgets'] = True
         else:
             context['widgets'] = [{'widget': Widget()}]
             context['contains_widgets'] = False
         form = WidgetForm(initial={"page": page,
                                    "user": user,
                                    "widgetslot": slot})
         context['widget_form'] = form
         rt = render_to_string("widget/holder.html",
                               context_instance=context)
         output.append(prerendered[lastPos:m.start()])
         output.append(rt)
         lastPos = m.end()
     output.append(prerendered[lastPos:-1])
     output = "".join(output)
     return output
    def get_context(self, context, slot):
        page = context.get('page', None)

        context['slot'] = slot
        user = context['request'].user
        rendered = render_widgets_for_slot(slot, context)
        if rendered:
            context['widgets'] = rendered
            context['contains_widgets'] = True
        else:
            context['widgets'] = [{'widget': Widget()}]
            context['contains_widgets'] = False
            #add widget list form for adding new widgets
        form = WidgetForm(initial={"page": page,
                                   "user": user,
                                   "widgetslot": slot})
        context['widget_form'] = form

        return context
Exemple #4
0
    def get_context(self, context, slot):
        page = context.get('page', None)

        context['slot'] = slot
        user = context['request'].user
        rendered = render_widgets_for_slot(slot, context)
        if rendered:
            context['widgets'] = rendered
            context['contains_widgets'] = True
        else:
            context['widgets'] = [{'widget': Widget()}]
            context['contains_widgets'] = False
            #add widget list form for adding new widgets
        form = WidgetForm(initial={
            "page": page,
            "user": user,
            "widgetslot": slot
        })
        context['widget_form'] = form

        return context
Exemple #5
0
    def test_widget_renderer(self):
        # create page with widget slots
        page = RichTextPage.objects.create(title="testpage", status=CONTENT_STATUS_DRAFT)
        # create widget slot
        slot = "slot"

        # create test widget
        test_widget = Widget()
        test_widget.widget_class = "TestWidget"
        test_widget.page = page
        test_widget.user_id = 1
        test_widget.slot = slot
        test_widget.save()

        context = {}
        context["page"] = page
        context["request"] = {"user": self._user}
        # render widget, there should be only one widget i.e test_widget
        widgets = render_widgets_for_slot(slot, context)
        self.assertEqual(widgets[0]["widget"], test_widget)
        # check if rendered content is correct
        self.assertEqual(widgets[0]["content"], "Test Widget Rendered")
Exemple #6
0
    def test_widget_renderer_for_page(self):

        #mock context
        context = {}
        context["page"] = self.page

        #mock request
        request = type('request', (object,), {'user': self._user})
        context["request"] = request

        #render widget, there should be only one widget i.e test_widget
        #This returns all widget's in the mentioned slot

        widgets = render_widgets_for_slot(self.slot, Context(context))

        #only one widget item is published
        self.assertEqual(len(widgets), 1)

        self.assertEqual(widgets[0]['widget'].status, CONTENT_STATUS_PUBLISHED)

        self.assertEqual(widgets[0]['widget'].display_title, self.test_widgets[self.widget_count-1].display_title)

        #check if rendered content is correct
        self.assertEqual(widgets[0]['content'], "Test Widget Rendered")