Skip to content

Commit

Permalink
Merge pull request #374 from CTPUG/feature/test-load-pages
Browse files Browse the repository at this point in the history
Fix load_pages management command under Python 2.
  • Loading branch information
hodgestar committed Sep 18, 2017
2 parents f102772 + 0ce53f5 commit e56c729
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 1 deletion.
1 change: 1 addition & 0 deletions requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
PyYAML
mock
pep8
pyflakes
Expand Down
2 changes: 1 addition & 1 deletion wafer/pages/management/commands/load_pages.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ def read_page(self, fn):
break
front_matter.append(line)
meta = yaml.load(''.join(front_matter))
contents = f.read()
contents = ''.join(f)
return meta, contents

def load_page(self, parent, slug, meta, content):
Expand Down
52 changes: 52 additions & 0 deletions wafer/pages/management/tests/test_load_pages.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Test load_pages management commands

import os
import shutil
import tempfile

from django.core.management import call_command
from django.test import TestCase
from django.utils.six import StringIO

from wafer.pages.models import Page

PAGES = {
"page1.md": "\n".join([
"---",
"name: Page 1",
"---",
"This is page 1.",
]),
"page2.md": "\n".join([
"---",
"name: Page 2",
"---",
"This is page 2.",
]),
}


class LoadPagesTest(TestCase):
def setUp(self):
self._page_dir = tempfile.mkdtemp()
for page, data in PAGES.items():
with open(os.path.join(self._page_dir, page), "w") as f:
f.write(data)

def tearDown(self):
shutil.rmtree(self._page_dir)

def test_load_pages(self):
out = StringIO()
with self.settings(PAGE_DIR=self._page_dir + "/"):
call_command('load_pages', stdout=out)
logs = out.getvalue().splitlines()
self.assertEqual(sorted(logs), [
"Loaded page page1",
"Loaded page page2",
])
pages = sorted(Page.objects.all(), key=lambda p: p.name)
self.assertEqual(pages[0].name, "Page 1")
self.assertEqual(pages[1].name, "Page 2")
self.assertEqual(pages[0].content.raw, "This is page 1.")
self.assertEqual(pages[1].content.raw, "This is page 2.")

0 comments on commit e56c729

Please sign in to comment.