예제 #1
0
    def test_no_links(self):
        a = WikiPage.get_by_title(u"A")
        a.update_content(u"Hello", 0, "")

        a = WikiPage.get_by_title(u"A")
        self.assertEqual({}, a.inlinks)
        self.assertEqual({}, a.outlinks)
예제 #2
0
    def test_no_links(self):
        a = WikiPage.get_by_title(u'A')
        a.update_content(u'Hello', 0)

        a = WikiPage.get_by_title(u'A')
        self.assertEqual({}, a.inlinks)
        self.assertEqual({}, a.outlinks)
예제 #3
0
    def test_normal_links(self):
        page_a = WikiPage.get_by_title(u"A")
        page_a.update_content(u"[[B]]", 0)
        page_b = WikiPage.get_by_title(u"B")

        self.assertEqual([u"A"], page_b.data["inlinks"])
        self.assertEqual([u"B"], page_a.data["outlinks"])
예제 #4
0
    def test_delete_published_page(self):
        self.login('*****@*****.**', 'a', is_admin=True)
        WikiPage.get_by_title(u'Hello 2').delete(self.get_cur_user())

        newer, older = WikiPage.get_posts_of(None)
        self.assertEqual(u'Hello 3', older.newer_title)
        self.assertEqual(u'Hello 1', newer.older_title)
예제 #5
0
    def test_delete_published_page(self):
        self.login('*****@*****.**', 'a', is_admin=True)
        WikiPage.get_by_title(u'Hello 2').delete(self.get_cur_user())

        newer, older = WikiPage.get_posts_of(None, 20)
        self.assertEqual(u'Hello 3', older.newer_title)
        self.assertEqual(u'Hello 1', newer.older_title)
예제 #6
0
    def test_normal_links(self):
        page_a = WikiPage.get_by_title(u'A')
        page_a.update_content(u'[[B]]', 0)
        page_b = WikiPage.get_by_title(u'B')

        self.assertEqual([u'A'], page_b.data['inlinks'])
        self.assertEqual([u'B'], page_a.data['outlinks'])
예제 #7
0
    def test_compare_yaml_and_embedded_data(self):
        page1 = WikiPage.get_by_title(u'A')
        page1.update_content(u'.schema Book\n    #!yaml/schema\n    datePublished: "1979-03-01"\n', 0)
        page2 = WikiPage.get_by_title(u'B')
        page2.update_content(u'.schema Book\n\n[[datePublished::1979-03-01]]', 0)

        self.assertEqual(page1.data['datePublished'], page2.data['datePublished'])
        self.assertEqual(page1.outlinks, page2.outlinks)
예제 #8
0
    def test_add_schema(self):
        self.update_page(u'[[1979]]', u'A')
        self.update_page(u'.schema Book\n[[1979]]', u'A')

        page = WikiPage.get_by_title(u'A')
        year = WikiPage.get_by_title(u'1979')
        self.assertEqual({u'Book/relatedTo': [u'1979']}, page.outlinks)
        self.assertEqual({u'Book/relatedTo': [u'A']}, year.inlinks)
예제 #9
0
    def test_delete(self):
        self.login('*****@*****.**', 'ak', is_admin=True)

        memo = self.update_page(u'Hello', u'GEB/Chapter 1/Memo')
        memo.delete(self.get_cur_user())

        self.assertEqual({}, WikiPage.get_by_title(u'GEB').inlinks)
        self.assertEqual({}, WikiPage.get_by_title(u'GEB/Chapter 1').inlinks)
예제 #10
0
    def test_remove_schema(self):
        self.update_page(u'.schema Code\n[[1979]]', u'A')
        self.update_page(u'[[1979]]', u'A')

        page = WikiPage.get_by_title(u'A')
        year = WikiPage.get_by_title(u'1979')
        self.assertEqual({u'Article/relatedTo': [u'1979']}, page.outlinks)
        self.assertEqual({u'Article/relatedTo': [u'A']}, year.inlinks)
예제 #11
0
    def test_update_rel(self):
        self.update_page(u'[[1979]]', u'A')
        self.update_page(u'.schema Person\n[[birthDate::1979]]', u'A')

        page = WikiPage.get_by_title(u'A')
        year = WikiPage.get_by_title(u'1979')
        self.assertEqual({u'Person/birthDate': [u'1979']}, page.outlinks)
        self.assertEqual({u'Person/birthDate': [u'A']}, year.inlinks)
예제 #12
0
    def test_years_section(self):
        page = WikiPage.get_by_title(u"2")
        ss = page.special_sections[u"years"]
        self.assertEqual([u"2 BCE", u"1 BCE", u"1", u"2", u"3", u"4", u"5"], ss[u"years"])

        page = WikiPage.get_by_title(u"2 BCE")
        ss = page.special_sections[u"years"]
        self.assertEqual([u"5 BCE", u"4 BCE", u"3 BCE", u"2 BCE", u"1 BCE", u"1", u"2"], ss[u"years"])
예제 #13
0
    def test_add_schema(self):
        self.update_page(u'[[1979]]', u'A')
        self.update_page(u'.schema Book\n[[1979]]', u'A')

        page = WikiPage.get_by_title(u'A')
        year = WikiPage.get_by_title(u'1979')
        self.assertEqual({u'Book/relatedTo': [u'1979']}, page.outlinks)
        self.assertEqual({u'Book/relatedTo': [u'A']}, year.inlinks)
예제 #14
0
    def test_remove_schema(self):
        self.update_page(u'.schema Code\n[[1979]]', u'A')
        self.update_page(u'[[1979]]', u'A')

        page = WikiPage.get_by_title(u'A')
        year = WikiPage.get_by_title(u'1979')
        self.assertEqual({u'Article/relatedTo': [u'1979']}, page.outlinks)
        self.assertEqual({u'Article/relatedTo': [u'A']}, year.inlinks)
예제 #15
0
    def test_delete(self):
        self.login('*****@*****.**', 'ak', is_admin=True)

        memo = self.update_page(u'Hello', u'GEB/Chapter 1/Memo')
        memo.delete(self.get_cur_user())

        self.assertEqual({}, WikiPage.get_by_title(u'GEB').inlinks)
        self.assertEqual({}, WikiPage.get_by_title(u'GEB/Chapter 1').inlinks)
예제 #16
0
    def test_update_rel(self):
        self.update_page(u'[[1979]]', u'A')
        self.update_page(u'.schema Person\n[[birthDate::1979]]', u'A')

        page = WikiPage.get_by_title(u'A')
        year = WikiPage.get_by_title(u'1979')
        self.assertEqual({u'Person/birthDate': [u'1979']}, page.outlinks)
        self.assertEqual({u'Person/birthDate': [u'A']}, year.inlinks)
예제 #17
0
    def test_two_aliases(self):
        self.update_page(u'.redirect C', u'B')
        self.update_page(u'[[C]]', u'A')
        self.update_page(u'[[B]]', u'A')

        a = WikiPage.get_by_title(u'A')
        c = WikiPage.get_by_title(u'C')
        self.assertEqual({u'Article/relatedTo': [u'A']}, c.inlinks)
        self.assertEqual({u'Article/relatedTo': [u'C']}, a.outlinks)
예제 #18
0
    def test_link_in_yaml_schema_block(self):
        page = WikiPage.get_by_title(u'A')
        page.update_content(u'.schema Book\n    #!yaml/schema\n    author: Richard Dawkins\n', 0)

        page = WikiPage.get_by_title(u'A')
        self.assertEqual({u'Book/author': [u'Richard Dawkins']}, page.outlinks)

        rd = WikiPage.get_by_title(u'Richard Dawkins')
        self.assertEqual({u'Book/author': [u'A']}, rd.inlinks)
예제 #19
0
    def test_two_aliases(self):
        self.update_page(u'.redirect C', u'B')
        self.update_page(u'[[C]]', u'A')
        self.update_page(u'[[B]]', u'A')

        a = WikiPage.get_by_title(u'A')
        c = WikiPage.get_by_title(u'C')
        self.assertEqual({u'Article/relatedTo': [u'A']}, c.inlinks)
        self.assertEqual({u'Article/relatedTo': [u'C']}, a.outlinks)
예제 #20
0
    def setUp(self):
        super(WikiPageDeleteTest, self).setUp()
        self.login('*****@*****.**', 'a')

        self.update_page(u'Hello [[B]]', u'A')
        self.update_page(u'Hello [[A]]', u'B')

        # reload
        self.pagea = WikiPage.get_by_title(u'A')
        self.pageb = WikiPage.get_by_title(u'B')
예제 #21
0
    def setUp(self):
        super(WikiPageDeleteTest, self).setUp()
        self.login('*****@*****.**', 'a')

        self.update_page(u'Hello [[B]]', u'A')
        self.update_page(u'Hello [[A]]', u'B')

        # reload
        self.pagea = WikiPage.get_by_title(u'A')
        self.pageb = WikiPage.get_by_title(u'B')
예제 #22
0
    def test_older_newer_isolation(self):
        b1p1 = WikiPage.get_by_title(u'b1p1')
        b1p2 = WikiPage.get_by_title(u'b1p2')
        b2p1 = WikiPage.get_by_title(u'b2p1')
        b2p2 = WikiPage.get_by_title(u'b2p2')

        self.assertEqual('b1p2', b1p1.newer_title)
        self.assertEqual('b1p1', b1p2.older_title)
        self.assertEqual('b2p2', b2p1.newer_title)
        self.assertEqual('b2p1', b2p2.older_title)
예제 #23
0
    def test_older_newer_isolation(self):
        b1p1 = WikiPage.get_by_title(u'b1p1')
        b1p2 = WikiPage.get_by_title(u'b1p2')
        b2p1 = WikiPage.get_by_title(u'b2p1')
        b2p2 = WikiPage.get_by_title(u'b2p2')

        self.assertEqual('b1p2', b1p1.newer_title)
        self.assertEqual('b1p1', b1p2.older_title)
        self.assertEqual('b2p2', b2p1.newer_title)
        self.assertEqual('b2p1', b2p2.older_title)
예제 #24
0
    def test_adding_redirect_should_change_inout_links(self):
        self.update_page(u'[[B]]', u'A')
        self.update_page(u'.redirect C', u'B')

        a = WikiPage.get_by_title(u'A')
        b = WikiPage.get_by_title(u'B')
        c = WikiPage.get_by_title(u'C')
        self.assertEqual({u'Article/relatedTo': [u'C']}, a.outlinks)
        self.assertEqual({}, b.inlinks)
        self.assertEqual({}, b.outlinks)
        self.assertEqual({u'Article/relatedTo': [u'A']}, c.inlinks)
예제 #25
0
    def test_years_section(self):
        page = WikiPage.get_by_title(u'2')
        ss = page.special_sections[u'years']
        self.assertEqual([u'2 BCE', u'1 BCE', u'1', u'2', u'3', u'4', u'5'],
                         ss[u'years'])

        page = WikiPage.get_by_title(u'2 BCE')
        ss = page.special_sections[u'years']
        self.assertEqual(
            [u'5 BCE', u'4 BCE', u'3 BCE', u'2 BCE', u'1 BCE', u'1', u'2'],
            ss[u'years'])
예제 #26
0
    def test_adding_redirect_should_change_inout_links(self):
        self.update_page(u'[[B]]', u'A')
        self.update_page(u'.redirect C', u'B')

        a = WikiPage.get_by_title(u'A')
        b = WikiPage.get_by_title(u'B')
        c = WikiPage.get_by_title(u'C')
        self.assertEqual({u'Article/relatedTo': [u'C']}, a.outlinks)
        self.assertEqual({}, b.inlinks)
        self.assertEqual({}, b.outlinks)
        self.assertEqual({u'Article/relatedTo': [u'A']}, c.inlinks)
예제 #27
0
    def test_redirect(self):
        a = WikiPage.get_by_title(u"A")
        a.update_content(u"[[B]]", 0, "")
        b = WikiPage.get_by_title(u"B")
        b.update_content(u".redirect C", 0, "")
        c = WikiPage.get_by_title(u"C")
        c.update_content(u"[[D]]", 0, "")
        d = WikiPage.get_by_title(u"D")
        d.update_content(u"Destination", 0, "")

        a.update_related_links()
        self.assertFalse(u"D" in a.related_links)
예제 #28
0
    def test_update_related_links(self):
        a = WikiPage.get_by_title(u'A')
        a.update_content(u'[[B]], [[C]], [[D]]', 0)

        b = WikiPage.get_by_title(u'B')
        b.update_content(u'[[D]], [[E]]', 0)

        c = WikiPage.get_by_title(u'C')
        c.update_content(u'[[A]]', 0)

        for _ in range(10):
            a.update_related_links()
예제 #29
0
    def test_second_publish(self):
        page1 = WikiPage.get_by_title(u'Hello 1')
        page1.update_content(u'.pub\nHello 1', 0)

        page2 = WikiPage.get_by_title(u'Hello 2')
        page2.update_content(u'.pub\nHello 2', 0)

        posts = WikiPage.get_published_posts(None, 20)

        self.assertEqual(2, len(posts))
        self.assertEqual(page2.title, posts[1].newer_title)
        self.assertEqual(page1.title, posts[0].older_title)
예제 #30
0
    def test_redirect(self):
        a = WikiPage.get_by_title(u'A')
        a.update_content(u'[[B]]', 0)
        b = WikiPage.get_by_title(u'B')
        b.update_content(u'.redirect C', 0)
        c = WikiPage.get_by_title(u'C')
        c.update_content(u'[[D]]', 0)
        d = WikiPage.get_by_title(u'D')
        d.update_content(u'Destination', 0)

        a.update_related_links()
        self.assertTrue(u'D' in a.related_links)
예제 #31
0
    def test_update_related_links(self):
        a = WikiPage.get_by_title(u"A")
        a.update_content(u"[[B]], [[C]], [[D]]", 0, "")

        b = WikiPage.get_by_title(u"B")
        b.update_content(u"[[D]], [[E]]", 0, "")

        c = WikiPage.get_by_title(u"C")
        c.update_content(u"[[A]]", 0, "")

        for _ in range(10):
            a.update_related_links()
예제 #32
0
    def test_second_publish(self):
        page1 = WikiPage.get_by_title(u'Hello 1')
        page1.update_content(u'.pub\nHello 1', 0, '')

        page2 = WikiPage.get_by_title(u'Hello 2')
        page2.update_content(u'.pub\nHello 2', 0, '')

        posts = WikiPage.get_published_posts(None, 20)

        self.assertEqual(2, len(posts))
        self.assertEqual(page2.title, posts[1].newer_title)
        self.assertEqual(page1.title, posts[0].older_title)
예제 #33
0
    def test_years(self):
        titles = [u"10000 BCE", u"10000", u"1", u"1984", u"600 BCE"]
        for t in titles:
            page = WikiPage.get_by_title(t)
            ss = page.special_sections
            self.assertTrue(u"years" in ss)

        normal_titles = [u"Hello", u"0"]
        for t in normal_titles:
            page = WikiPage.get_by_title(t)
            ss = page.special_sections
            self.assertFalse(u"years" in ss)
예제 #34
0
    def setUp(self):
        self.testbed = testbed.Testbed()
        self.testbed.activate()
        self.testbed.init_datastore_v3_stub()
        self.testbed.init_memcache_stub()
        self.testbed.init_taskqueue_stub()
        self.testbed.init_user_stub()
        cache.prc.flush_all()

        WikiPage.get_by_title(u'A').update_content(u'.schema Book\n.read all\nHello', 0, u'')
        WikiPage.get_by_title(u'B').update_content(u'.schema Book\n.read [email protected]\nThere', 0, u'')
        for p in WikiPage.query().fetch():
            p.rebuild_data_index()
예제 #35
0
    def test_do_not_display_restricted_links(self):
        a = WikiPage.get_by_title(u"A")
        a.update_content(u".read [email protected]\n[[B]]", 0, "")

        a = WikiPage.get_by_title(u"A")
        b = WikiPage.get_by_title(u"B")

        self.assertEqual({}, a.inlinks)
        self.assertEqual({u"Article/relatedTo": [u"B"]}, a.outlinks)

        self.assertEqual(None, b.updated_at)
        self.assertEqual({}, b.inlinks)
        self.assertEqual({}, b.outlinks)
예제 #36
0
    def test_links(self):
        a = WikiPage.get_by_title(u'A')
        a.update_content(u'[[B]]', 0)

        a = WikiPage.get_by_title(u'A')
        b = WikiPage.get_by_title(u'B')

        self.assertEqual({}, a.inlinks)
        self.assertEqual({u'Article/relatedTo': [u'B']}, a.outlinks)

        self.assertEqual(None, b.updated_at)
        self.assertEqual({u'Article/relatedTo': [u'A']}, b.inlinks)
        self.assertEqual({}, b.outlinks)
예제 #37
0
    def test_links(self):
        a = WikiPage.get_by_title(u"A")
        a.update_content(u"[[B]]", 0, "")

        a = WikiPage.get_by_title(u"A")
        b = WikiPage.get_by_title(u"B")

        self.assertEqual({}, a.inlinks)
        self.assertEqual({u"Article/relatedTo": [u"B"]}, a.outlinks)

        self.assertEqual(None, b.updated_at)
        self.assertEqual({u"Article/relatedTo": [u"A"]}, b.inlinks)
        self.assertEqual({}, b.outlinks)
예제 #38
0
    def test_do_not_display_restricted_links(self):
        a = WikiPage.get_by_title(u'A')
        a.update_content(u'.read [email protected]\n[[B]]', 0)

        a = WikiPage.get_by_title(u'A')
        b = WikiPage.get_by_title(u'B')

        self.assertEqual({}, a.inlinks)
        self.assertEqual({u'Article/relatedTo': [u'B']}, a.outlinks)

        self.assertEqual(None, b.updated_at)
        self.assertEqual({}, b.inlinks)
        self.assertEqual({}, b.outlinks)
예제 #39
0
    def test_delete_and_redirection_1(self):
        self.update_page(u'.redirect C', u'B')
        self.update_page(u'Hello [[A]]', u'C')

        self.login('*****@*****.**', 'a', is_admin=True)
        WikiPage.get_by_title(u'A').delete(users.get_current_user())

        self.pagea = WikiPage.get_by_title(u'A')
        self.pagec = WikiPage.get_by_title(u'C')

        self.assertEqual(1, len(self.pagea.inlinks))
        self.assertEqual(0, len(self.pagea.outlinks))
        self.assertEqual(0, len(self.pagec.inlinks))
        self.assertEqual(1, len(self.pagec.outlinks))
예제 #40
0
    def test_multiple_custom_blogs(self):
        self.update_page(u'.pub B1', u'b1p1')
        self.update_page(u'.pub B1', u'b1p2')
        self.update_page(u'.pub B2', u'b2p1')
        self.update_page(u'.pub B2', u'b2p2')

        b1p1 = WikiPage.get_by_title(u'b1p1')
        b1p2 = WikiPage.get_by_title(u'b1p2')
        b2p1 = WikiPage.get_by_title(u'b2p1')
        b2p2 = WikiPage.get_by_title(u'b2p2')
        self.assertEqual('b1p2', b1p1.newer_title)
        self.assertEqual('b1p1', b1p2.older_title)
        self.assertEqual('b2p2', b2p1.newer_title)
        self.assertEqual('b2p1', b2p2.older_title)
예제 #41
0
    def test_removing_redirect_should_change_inout_links(self):
        WikiPage.get_by_title(u'A').update_content(u'[[B]]', 0)
        WikiPage.get_by_title(u'B').update_content(u'.redirect C', 0)
        WikiPage.get_by_title(u'B').update_content(u'Hello [[D]]', 1)

        a = WikiPage.get_by_title(u'A')
        b = WikiPage.get_by_title(u'B')
        c = WikiPage.get_by_title(u'C')
        d = WikiPage.get_by_title(u'D')
        self.assertEqual({u'Article/relatedTo': [u'B']}, a.outlinks)
        self.assertEqual({u'Article/relatedTo': [u'A']}, b.inlinks)
        self.assertEqual({u'Article/relatedTo': [u'D']}, b.outlinks)
        self.assertEqual({}, c.inlinks)
        self.assertEqual({u'Article/relatedTo': [u'B']}, d.inlinks)
예제 #42
0
    def test_years_section(self):
        page = WikiPage.get_by_title(u'2')
        ss = page.special_sections[u'years']
        self.assertEqual(
            [u'2 BCE', u'1 BCE', u'1', u'2', u'3', u'4', u'5'],
            ss[u'years']
        )

        page = WikiPage.get_by_title(u'2 BCE')
        ss = page.special_sections[u'years']
        self.assertEqual(
            [u'5 BCE', u'4 BCE', u'3 BCE', u'2 BCE', u'1 BCE', u'1', u'2'],
            ss[u'years']
        )
예제 #43
0
    def test_changing_redirect_should_change_inout_links(self):
        WikiPage.get_by_title(u"A").update_content(u"[[B]]", 0, "")
        WikiPage.get_by_title(u"B").update_content(u".redirect C", 0, "")
        WikiPage.get_by_title(u"B").update_content(u".redirect D", 1, "")

        a = WikiPage.get_by_title(u"A")
        b = WikiPage.get_by_title(u"B")
        c = WikiPage.get_by_title(u"C")
        d = WikiPage.get_by_title(u"D")
        self.assertEqual({u"Article/relatedTo": [u"D"]}, a.outlinks)
        self.assertEqual({}, b.inlinks)
        self.assertEqual({}, b.outlinks)
        self.assertEqual({}, c.inlinks)
        self.assertEqual({u"Article/relatedTo": [u"A"]}, d.inlinks)
예제 #44
0
    def test_delete_and_redirection_1(self):
        self.update_page(u'.redirect C', u'B')
        self.update_page(u'Hello [[A]]', u'C')

        self.login('*****@*****.**', 'a', is_admin=True)
        WikiPage.get_by_title(u'A').delete(users.get_current_user())

        self.pagea = WikiPage.get_by_title(u'A')
        self.pagec = WikiPage.get_by_title(u'C')

        self.assertEqual(1, len(self.pagea.inlinks))
        self.assertEqual(0, len(self.pagea.outlinks))
        self.assertEqual(0, len(self.pagec.inlinks))
        self.assertEqual(1, len(self.pagec.outlinks))
예제 #45
0
    def setUp(self):
        self.testbed = testbed.Testbed()
        self.testbed.activate()
        self.testbed.init_datastore_v3_stub()
        self.testbed.init_memcache_stub()
        self.testbed.init_taskqueue_stub()

        self.b1p1 = WikiPage.get_by_title(u'b1p1')
        self.b1p1.update_content(u'.pub B1', 0)
        self.b2p1 = WikiPage.get_by_title(u'b2p1')
        self.b2p1.update_content(u'.pub B2', 0)
        self.b1p2 = WikiPage.get_by_title(u'b1p2')
        self.b1p2.update_content(u'.pub B1', 0)
        self.b2p2 = WikiPage.get_by_title(u'b2p2')
        self.b2p2.update_content(u'.pub B2', 0)
예제 #46
0
    def setUp(self):
        self.testbed = testbed.Testbed()
        self.testbed.activate()
        self.testbed.init_datastore_v3_stub()
        self.testbed.init_memcache_stub()
        self.testbed.init_taskqueue_stub()

        page1 = WikiPage.get_by_title(u'Hello 1')
        page1.update_content(u'.pub\nHello 1', 0)

        page2 = WikiPage.get_by_title(u'Hello 2')
        page2.update_content(u'.pub\nHello 2', 0)

        page3 = WikiPage.get_by_title(u'Hello 3')
        page3.update_content(u'.pub\nHello 3', 0)
예제 #47
0
 def test_change_page_of_published_page(self):
     # .pub BBS1 -> .pub BBS2
     page = WikiPage.get_by_title(u'Hello')
     page.update_content(u'.pub BBS1\nHello', 0)
     page.update_content(u'.pub BBS2\nHello', 1)
     self.assertIsNotNone(page.published_at)
     self.assertEqual('BBS2', page.published_to)
예제 #48
0
 def test_link_in_yaml_schema_block(self):
     page = self.update_page(
         u'.schema Book\n    #!yaml/schema\n    author: Richard Dawkins\n',
         u'A')
     self.assertEqual({u'Book/author': [u'Richard Dawkins']}, page.outlinks)
     rd = WikiPage.get_by_title(u'Richard Dawkins')
     self.assertEqual({u'Book/author': [u'A']}, rd.inlinks)
예제 #49
0
 def test_specify_page_to_published_page(self):
     # .pub -> .pub BBS
     page = WikiPage.get_by_title(u'Hello')
     page.update_content(u'.pub\nHello', 0)
     page.update_content(u'.pub BBS\nHello', 1)
     self.assertIsNotNone(page.published_at)
     self.assertEqual('BBS', page.published_to)
예제 #50
0
    def test_rendered_body_should_be_cached(self):
        page = WikiPage.get_by_title(u'Hello')
        page.update_content(u'Hello', 0)
        self.assertIsNone(memcache.get(u'model\trendered_body\tHello'))

        _ = page.rendered_body
        self.assertIsNotNone(memcache.get(u'model\trendered_body\tHello'))
예제 #51
0
    def test_delete_and_create(self):
        self.login('*****@*****.**', 'a', is_admin=True)

        self.pagea.delete(users.get_current_user())
        self.pagea = WikiPage.get_by_title(u'A')
        self.pagea.update_content(u'Hello', 0, user=self.get_cur_user())
        self.assertEqual(1, self.pagea.revision)
예제 #52
0
 def test_hierarchy(self):
     page = WikiPage.get_by_title(u'GEB/Chapter 1/Memo')
     self.assertEqual([
         (u'GEB', u'GEB'),
         (u'GEB/Chapter 1', u'Chapter 1'),
         (u'GEB/Chapter 1/Memo', u'Memo'),
     ], page.paths)
예제 #53
0
 def test_unpublish_published_page(self):
     # .pub BBS -> (null)
     page = WikiPage.get_by_title(u'Hello')
     page.update_content(u'.pub BBS\nHello', 0)
     page.update_content(u'Hello', 1)
     self.assertIsNone(page.published_at)
     self.assertEqual(None, page.published_to)
예제 #54
0
    def setUp(self):
        self.testbed = testbed.Testbed()
        self.testbed.activate()
        self.testbed.init_datastore_v3_stub()
        self.testbed.init_memcache_stub()
        self.testbed.init_user_stub()
        user_stub = self.testbed._test_stub_map.GetStub(testbed.USER_SERVICE_NAME)
        user_stub.SetOAuthUser(email=None) # no OAuth login

        self.testbed.init_taskqueue_stub()
        self.parser = html5parser.HTMLParser(strict=True)
        self.browser = Browser()

        self.fixtures = [
            [u'Home', u'Goto [[한글 제목]]'],
            [u'A', u'Goto [[Home]]'],
            [u'한글 제목', u'Goto [[Home]]'],
            [u'Presentation', u'.pt\nHello'],
            [u'Blog post', u'.pub\nHello'],
        ]

        for title, body in self.fixtures:
            page = WikiPage.get_by_title(title)
            page.update_content(body, 0, None)
            # update again to create revisions
            page.update_content(body + u'!', 1, None)
예제 #55
0
    def test_updating_should_invalidate_rendered_body_cache(self):
        memcache.set(u'model\trendered_body\tHello', u'value')

        page = WikiPage.get_by_title(u'Hello')
        page.update_content(u'Hello 2', 0)

        self.assertIsNone(memcache.get(u'model\trendered_body\tHello'))
예제 #56
0
 def test_remove_page_of_published_page(self):
     # .pub BBS -> .pub
     page = WikiPage.get_by_title(u'Hello')
     page.update_content(u'.pub BBS\nHello', 0)
     page.update_content(u'.pub\nHello', 1)
     self.assertIsNotNone(page.published_at)
     self.assertEqual(None, page.published_to)
예제 #57
0
    def test_automerge(self):
        self.login('ak', 'ak')
        page = WikiPage.get_by_title(u'Hello')
        page.update_content(u'A\nB\nC', 0, user=self.get_cur_user())

        # remove B
        page.update_content(u'A\nC', 1, user=self.get_cur_user())
        # append D
        page.update_content(u'A\nB\nC\nD', 1, user=self.get_cur_user())

        # should be merged
        page = WikiPage.get_by_title(u'Hello')
        self.assertEqual(u'A\nC\nD', page.body)
        self.assertEqual(3, page.revision)

        revs = list(page.revisions)
        self.assertEqual(3, len(revs))
예제 #58
0
    def test_deleted(self):
        self.login('*****@*****.**', 'a', is_admin=True)
        self.pagea.delete(users.get_current_user())

        self.pagea = WikiPage.get_by_title(u'A')
        self.assertEqual(None, self.pagea.modifier)
        self.assertEqual(u'', self.pagea.body)
        self.assertEqual(0, self.pagea.revision)
예제 #59
0
    def test_redirect_metadata(self):
        page = WikiPage.get_by_title(u'Hi')
        page.update_content(u'.redirect Hello World', 0)

        self.browser.get('/Hi', follow_redir=False)
        self.assertEqual(303, self.browser.res.status_code)
        self.assertEqual('http://localhost/Hello_World',
                         self.browser.res.location)