def test_nav_next_sibling(self): page = get(Page, url='/') real_sibs = set(['/', '/top-one/', '/top-two/']) real_next_sib = '/top-one/' self.assertTrue(real_next_sib == page.nav_next_sibling().url) page = get(Page, url='/top-two/') real_next_sib = None self.assertTrue(real_next_sib == page.nav_next_sibling())
def test_move_tree(self): one = get(Page, title='Top One') one_sub = get(Page, title='One Sub') one_sub_sub = get(Page, title='One Sub Sub') two = get(Page, title='Top Two') self.assertTrue(one in two.get_siblings()) self.assertEqual(one.url, '/top-one/') self.assertEqual(one_sub.url, '/top-one/one-sub/') self.assertEqual(one_sub_sub.url, '/top-one/one-sub/one-sub-sub/') self.client.login(username='******', password='******') resp = self.client.post('/admin/stoat/page/move-page/', { 'page': one.id, 'target': two.id, 'position': 'inside', }) self.assertEqual(resp.status_code, 301) self.assertEqual(resp['Location'], 'http://testserver/admin/stoat/page/') one = get(Page, title='Top One') one_sub = get(Page, title='One Sub') one_sub_sub = get(Page, title='One Sub Sub') two = get(Page, title='Top Two') self.assertTrue(one in two.get_children()) self.assertEqual(one.url, '/top-two/top-one/') self.assertEqual(one_sub.url, '/top-two/top-one/one-sub/') self.assertEqual(one_sub_sub.url, '/top-two/top-one/one-sub/one-sub-sub/')
def test_pagecontent_deletion(self): p = Page.add_root(title='Sample', slug='sample', template='Default') p.save() pc1 = get(PageContent, page=p, title='Body') pc2 = get(PageContent, page=p, title='Sidebar Heading') pc3 = get(PageContent, page=p, title='Sidebar Body') pc4 = get(PageContent, page=p, title='Test Int') self.assertEqual(pc1.content, '') self.assertEqual(pc2.content, '') self.assertEqual(pc3.content, '') self.assertEqual(pc4, None) p.template = 'Other' p.save() pc1 = get(PageContent, page=p, title='Body') pc2 = get(PageContent, page=p, title='Sidebar Heading') pc3 = get(PageContent, page=p, title='Sidebar Body') pc4 = get(PageContent, page=p, title='Test Int') self.assertEqual(pc1.content, '') self.assertEqual(pc2, None) self.assertEqual(pc3, None) self.assertEqual(pc4.content, '')
def test_nav_siblings(self): page = get(Page, url='/') real_sibs = set(['/', '/top-one/', '/top-two/']) test_sibs = set([p.url for p in page.nav_siblings()]) self.assertTrue(real_sibs == test_sibs) page = get(Page, url='/top-one/') test_sibs = set([p.url for p in page.nav_siblings()]) self.assertTrue(real_sibs == test_sibs) page = get(Page, url='/top-one/one-sub/') real_sibs = set(['/top-one/one-sub/']) test_sibs = set([p.url for p in page.nav_siblings()]) self.assertTrue(real_sibs == test_sibs)
def test_nav_children(self): page = get(Page, url='/') real_kids = set([]) test_kids = set([p.url for p in page.nav_children()]) self.assertTrue(real_kids == test_kids) page = get(Page, url='/top-one/') real_kids = set(['/top-one/one-sub/']) test_kids = set([p.url for p in page.nav_children()]) self.assertTrue(real_kids == test_kids) page = get(Page, url='/top-one/one-sub/') real_kids = set(['/top-one/one-sub/one-sub-sub/']) test_kids = set([p.url for p in page.nav_children()]) self.assertTrue(real_kids == test_kids)
def test_pagecontent_preservation(self): p = Page.add_root(title='Sample', slug='sample', template='Default') p.save() pc1 = get(PageContent, page=p, title='Body') pc1.content = 'Testing Content' pc1.save() pc1 = get(PageContent, page=p, title='Body') self.assertEqual(pc1.content, 'Testing Content') p.template = 'Other' p.save() pc1 = get(PageContent, page=p, title='Body') self.assertEqual(pc1.content, 'Testing Content')
def test_breadcrumbs(self): page = get(Page, url='/') real_crumbs = ['/'] self.assertTrue(real_crumbs == [p.url for p in page.breadcrumbs()]) page = get(Page, url='/top-one/') real_crumbs = ['/top-one/'] self.assertTrue(real_crumbs == [p.url for p in page.breadcrumbs()]) page = get(Page, url='/top-one/one-sub/') real_crumbs = ['/top-one/', '/top-one/one-sub/'] self.assertTrue(real_crumbs == [p.url for p in page.breadcrumbs()]) page = get(Page, url='/top-one/one-sub/one-sub-sub/') real_crumbs = ['/top-one/', '/top-one/one-sub/', '/top-one/one-sub/one-sub-sub/'] self.assertTrue(real_crumbs == [p.url for p in page.breadcrumbs()]) page = get(Page, url='/top-one/one-sub-hidden/') real_crumbs = ['/top-one/', '/top-one/one-sub-hidden/'] self.assertTrue(real_crumbs == [p.url for p in page.breadcrumbs()])
def test_breadcrumbs(self): page = get(Page, url='/') real_crumbs = ['/'] self.assertTrue(real_crumbs == [p.url for p in page.breadcrumbs()]) page = get(Page, url='/top-one/') real_crumbs = ['/top-one/'] self.assertTrue(real_crumbs == [p.url for p in page.breadcrumbs()]) page = get(Page, url='/top-one/one-sub/') real_crumbs = ['/top-one/', '/top-one/one-sub/'] self.assertTrue(real_crumbs == [p.url for p in page.breadcrumbs()]) page = get(Page, url='/top-one/one-sub/one-sub-sub/') real_crumbs = [ '/top-one/', '/top-one/one-sub/', '/top-one/one-sub/one-sub-sub/' ] self.assertTrue(real_crumbs == [p.url for p in page.breadcrumbs()]) page = get(Page, url='/top-one/one-sub-hidden/') real_crumbs = ['/top-one/', '/top-one/one-sub-hidden/'] self.assertTrue(real_crumbs == [p.url for p in page.breadcrumbs()])
def test_shadowed(self): p = get(Page, title='Shadowed') self.assertEqual(p.url, '/shadowed/') resp = self.client.get('/shadowed/') self.assertEqual(resp.status_code, 200) self.assertTrue('This is a normal view.' in resp.content) self.assertTrue('html' not in resp.content) resp = self.client.get('/shadowed') self.assertEqual(resp.status_code, 301) self.assertEqual(resp['Location'], 'http://testserver/shadowed/')
def test_move_below(self): one = get(Page, title='Top Two') two = get(Page, title='Top One') pages = list(Page.objects.filter(depth=1)) self.assertTrue(two in pages) self.assertTrue(pages.index(one) > pages.index(two)) self.client.login(username='******', password='******') resp = self.client.post('/admin/stoat/page/move-page/', { 'page': two.id, 'target': one.id, 'position': 'below', }) self.assertEqual(resp.status_code, 301) self.assertEqual(resp['Location'], 'http://testserver/admin/stoat/page/') one = get(Page, title='Top Two') two = get(Page, title='Top One') pages = list(Page.objects.filter(depth=1)) self.assertTrue(two in pages) self.assertTrue(pages.index(one) < pages.index(two))
def test_nav_siblings_and_children(self): def test_siblings(saclist, urllist): urls = set([sib.url for sib, children in saclist]) return urls == set(urllist) def test_children(saclist, urlmap): test_urlmap = {} for sib, children in saclist: test_urlmap[sib.url] = [c.url for c in children] return test_urlmap == urlmap page = get(Page, url='/') real_sibs = ['/', '/top-one/', '/top-two/'] real_map = { '/': [], '/top-one/': ['/top-one/one-sub/'], '/top-two/': [], } saclist = page.nav_siblings_and_children() self.assertTrue(test_siblings(saclist, real_sibs)) self.assertTrue(test_children(saclist, real_map)) page = get(Page, url='/top-one/') saclist = page.nav_siblings_and_children() self.assertTrue(test_siblings(saclist, real_sibs)) self.assertTrue(test_children(saclist, real_map)) page = get(Page, url='/top-one/one-sub/') real_sibs = ['/top-one/one-sub/'] real_map = { '/top-one/one-sub/': ['/top-one/one-sub/one-sub-sub/'], } saclist = page.nav_siblings_and_children() self.assertTrue(test_siblings(saclist, real_sibs)) self.assertTrue(test_children(saclist, real_map))