add tests for core pages
This commit is contained in:
parent
ae553e808e
commit
c036c17a54
3 changed files with 48 additions and 1 deletions
|
@ -49,7 +49,7 @@ AUTHOR_SAVE_AS = False
|
||||||
|
|
||||||
# Override page URLs
|
# Override page URLs
|
||||||
PAGE_SAVE_AS = "{slug}/index.html"
|
PAGE_SAVE_AS = "{slug}/index.html"
|
||||||
PAGE_URL = "{slug}"
|
PAGE_URL = "{slug}/"
|
||||||
ARTICLE_SAVE_AS = "{category}/{slug}/index.html"
|
ARTICLE_SAVE_AS = "{category}/{slug}/index.html"
|
||||||
ARTICLE_URL = "{category}/{slug}/"
|
ARTICLE_URL = "{category}/{slug}/"
|
||||||
CATEGORY_SAVE_AS = "{slug}/index.html"
|
CATEGORY_SAVE_AS = "{slug}/index.html"
|
||||||
|
|
|
@ -29,5 +29,12 @@ class TestClient:
|
||||||
class TestCase(unittest.TestCase):
|
class TestCase(unittest.TestCase):
|
||||||
client = TestClient()
|
client = TestClient()
|
||||||
|
|
||||||
|
def get_children(self, content):
|
||||||
|
return str(list(content.children)[0])
|
||||||
|
|
||||||
def assertTitle(self, content, title):
|
def assertTitle(self, content, title):
|
||||||
self.assertIn(title, content.title.string)
|
self.assertIn(title, content.title.string)
|
||||||
|
|
||||||
|
def assertHeaderTitle(self, content, title):
|
||||||
|
header_title = content.find('h1', class_="section-heading")
|
||||||
|
self.assertIn(title, self.get_children(header_title))
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
from tests import TestCase
|
from tests import TestCase
|
||||||
|
from config import settings
|
||||||
import os.path
|
import os.path
|
||||||
|
|
||||||
|
|
||||||
|
@ -17,3 +18,42 @@ class HomepageTestCase(TestCase):
|
||||||
for project in projects:
|
for project in projects:
|
||||||
url = os.path.join(project.attrs['href'], 'index.html')
|
url = os.path.join(project.attrs['href'], 'index.html')
|
||||||
self.assertTrue(self.client.exists(url))
|
self.assertTrue(self.client.exists(url))
|
||||||
|
|
||||||
|
|
||||||
|
class AboutPageTestCase(TestCase):
|
||||||
|
def test_title(self):
|
||||||
|
content = self.client.get('about/index.html')
|
||||||
|
self.assertHeaderTitle(content, 'About Me')
|
||||||
|
self.assertTitle(content, 'About')
|
||||||
|
|
||||||
|
def test_website_section(self):
|
||||||
|
content = self.client.get('about/index.html')
|
||||||
|
section = content.find('section', id='website')
|
||||||
|
subtitle = section.find('h2')
|
||||||
|
self.assertEqual('About my website', self.get_children(subtitle))
|
||||||
|
|
||||||
|
def test_server_section(self):
|
||||||
|
content = self.client.get('about/index.html')
|
||||||
|
section = content.find('section', id='server')
|
||||||
|
subtitle = section.find('h2')
|
||||||
|
self.assertEqual('The Server', self.get_children(subtitle))
|
||||||
|
|
||||||
|
def test_github_card(self):
|
||||||
|
content = self.client.get('about/index.html')
|
||||||
|
tags = content.find_all('div', class_='github-card')
|
||||||
|
self.assertEqual(len(tags), 1)
|
||||||
|
tag = tags[0]
|
||||||
|
self.assertEqual('medium', tag.attrs['data-theme'])
|
||||||
|
self.assertEqual(settings.accounts.github[1], tag.attrs['data-github'])
|
||||||
|
|
||||||
|
|
||||||
|
class Page404TestCase(TestCase):
|
||||||
|
def test_title(self):
|
||||||
|
content = self.client.get('.404.html')
|
||||||
|
self.assertHeaderTitle(content, 'Uh Oh - There\'s nothing here!')
|
||||||
|
self.assertTitle(content, '404 - Page not found')
|
||||||
|
|
||||||
|
def test_image(self):
|
||||||
|
content = self.client.get('.404.html')
|
||||||
|
img = content.find('img')
|
||||||
|
self.assertEqual('Cat', img.attrs['alt'])
|
||||||
|
|
Reference in a new issue