예제 #1
0
    def test_url_scan_on_put(self):
        """Should scan for links and store referenced URLNode ids on save"""
        url_node_1 = URLNode(
            url_order=0,
            title='Test URLNode',
            url_fragment='test-url-node-1',
        )
        url_node_1.put()

        url_node_2 = URLNode(
            url_order=0,
            title='Test URLNode 2',
            url_fragment='test-url-node-2',
        )
        url_node_2.put()

        test_widget = DummyWidget(
            name='Dummy Widget',
            html_element='p',
            content=(
                'Content with multiple links: '
                '{% page_url "test-url-node-1" %} '
                '{% page_url "test-url-node-2" %} '
                '{% page_url "test-url-node-1" %} '
            )
        )
        test_widget.put()
        self.assertEqual(2, len(test_widget.linked_url_node_keys))
        expected = set([str(url_node_1.key()), str(url_node_2.key())])
        found = set(test_widget.linked_url_node_keys)
        self.assertEqual(expected, found)
예제 #2
0
 def test_tag(self):
     """Should return a URLNode's URL and collect the node in the context"""
     url_fragment = 'this-does-exist'
     node = URLNode(
         url_order=0,
         title='Title',
         url_fragment=url_fragment,
     )
     node.put()
     ctx = template.Context({})
     ret = page_url(ctx, 'this-does-exist')
     self.assertEqual(ret, node.denormalized_url)
     self.assertTrue('_linked_url_nodes' in ctx)
     self.assertEqual(
         ctx['_linked_url_nodes'][url_fragment].key(), node.key())