def testPageShowFound(self): page = build_page() self.db.session.add(page) self.db.session.commit() resp = self.app.get('/' + page.slug) self.assertEqual(resp.status_code, 200) self.assertTrue(page.title.encode('utf-8') in resp.data) self.assertTrue(page.body.encode('utf-8') in resp.data)
def testPageDeleteNotAdmin(self): user = build_user(user_type='user') page = build_page() slug = page.slug self.db.session.add(user) self.db.session.add(page) self.db.session.commit() self.login_user(user) resp = self.app.post('/pages/' + slug + '/destroy') self.assertEqual(resp.status_code, 401)
def testPageEditAsUser(self): user = build_user(user_type='user') page = build_page() slug = page.slug self.db.session.add(user) self.db.session.add(page) self.db.session.commit() self.login_user(user) resp = self.app.get('/pages/' + slug + '/edit') self.assertEqual(resp.status_code, 401)
def testPageUpdateDuplicateSlug(self): user = build_user(user_type='admin') page = build_page() other_page = build_page() slug = page.slug other_slug = other_page.slug self.db.session.add(user) self.db.session.add(page) self.db.session.add(other_page) self.db.session.commit() self.login_user(user) page = Page.query.filter(Page.slug == slug).first() resp = self.app.post('/pages/' + slug, data={ 'title': 'New title', 'body': page.body, 'slug': other_slug }) self.assertEqual(resp.status_code, 200) self.assertTrue(b'This slug is taken.' in resp.data)
def testPageEditAsAdmin(self): user = build_user(user_type='admin') page = build_page() slug = page.slug self.db.session.add(user) self.db.session.add(page) self.db.session.commit() self.login_user(user) resp = self.app.get('/pages/' + slug + '/edit') self.assertEqual(resp.status_code, 200) self.assertTrue(slug.encode('utf-8') in resp.data)
def testPagesAdmin(self): user = build_user(user_type='admin') page = build_page() page_title = page.title self.db.session.add(user) self.db.session.add(page) self.db.session.commit() self.login_user(user) resp = self.app.get('/admin/pages') self.assertEqual(resp.status_code, 200) self.assertTrue(page_title.encode('utf-8') in resp.data)
def testPageDelete(self): user = build_user(user_type='admin') page = build_page() slug = page.slug self.db.session.add(user) self.db.session.add(page) self.db.session.commit() self.login_user(user) resp = self.app.post('/pages/' + slug + '/destroy') self.assert_redirected(resp, '/admin/pages') self.assert_flashes('Page deleted', 'success') page = Page.query.filter(Page.slug == slug).first() self.assertIsNone(page)
def testPageCreateDuplicateSlug(self): user = build_user(user_type='admin') page = build_page(slug='about') self.db.session.add(user) self.db.session.add(page) self.db.session.commit() self.login_user(user) resp = self.app.post('/pages', data={ 'title': 'About', 'body': 'About the page' }) self.assertEqual(resp.status_code, 200) self.assertTrue(b'This slug is taken.' in resp.data)
def testPageUpdateNotAdmin(self): user = build_user(user_type='user') page = build_page() slug = page.slug self.db.session.add(user) self.db.session.add(page) self.db.session.commit() self.login_user(user) page = Page.query.filter(Page.slug == slug).first() resp = self.app.post('/pages/' + slug, data={ 'title': 'New title', 'body': page.body, 'slug': page.slug }) self.assertEqual(resp.status_code, 401)
def testPageUpdateMissingData(self): user = build_user(user_type='admin') page = build_page() slug = page.slug old_title = page.title self.db.session.add(user) self.db.session.add(page) self.db.session.commit() self.login_user(user) page = Page.query.filter(Page.slug == slug).first() resp = self.app.post('/pages/' + slug, data={ 'title': '', 'body': page.body, 'slug': page.slug }) self.assertEqual(resp.status_code, 200) self.assertTrue(b'This field is required' in resp.data) page = Page.query.filter(Page.slug == slug).first() self.assertEqual(page.title, old_title)
def testPageUpdate(self): user = build_user(user_type='admin') page = build_page() slug = page.slug self.db.session.add(user) self.db.session.add(page) self.db.session.commit() self.login_user(user) page = Page.query.filter(Page.slug == slug).first() resp = self.app.post('/pages/' + slug, data={ 'title': 'New title', 'body': page.body, 'slug': page.slug }) self.assert_redirected(resp, '/' + slug) new_page = Page.query.filter(page.slug == slug).first() self.assertEqual(new_page.title, 'New title') self.assertEqual(new_page.slug, page.slug) self.assertEqual(new_page.body, page.body)
def testPageShowFoundHTMLBody(self): page = build_page(body='<p>Some html</p><p>In here</p>') self.db.session.add(page) self.db.session.commit() resp = self.app.get('/' + page.slug) self.assertTrue(page.body.encode('utf-8') in resp.data)