|
|
@@ -0,0 +1,71 @@ |
|
|
|
# -*- coding: utf-8 -*- |
|
|
|
""" |
|
|
|
Use nose |
|
|
|
`$ pip install nose` |
|
|
|
`$ nosetests` |
|
|
|
""" |
|
|
|
|
|
|
|
from hyde.generator import Generator |
|
|
|
from hyde.site import Site |
|
|
|
from hyde.model import Config |
|
|
|
|
|
|
|
from fswrap import File |
|
|
|
|
|
|
|
TEST_SITE = File(__file__).parent.parent.child_folder('_test') |
|
|
|
|
|
|
|
DRAFT_POST = """ |
|
|
|
|
|
|
|
--- |
|
|
|
is_draft: true |
|
|
|
--- |
|
|
|
|
|
|
|
A draft post. |
|
|
|
|
|
|
|
""" |
|
|
|
|
|
|
|
class TestDrafts(object): |
|
|
|
|
|
|
|
def setUp(self): |
|
|
|
TEST_SITE.make() |
|
|
|
TEST_SITE.parent.child_folder( |
|
|
|
'sites/test_jinja').copy_contents_to(TEST_SITE) |
|
|
|
draft = TEST_SITE.child_file('content/blog/2013/may/draft-post.html') |
|
|
|
draft.parent.make() |
|
|
|
draft.write(DRAFT_POST) |
|
|
|
|
|
|
|
def tearDown(self): |
|
|
|
TEST_SITE.delete() |
|
|
|
|
|
|
|
def test_drafts_are_skipped_in_production(self): |
|
|
|
s = Site(TEST_SITE) |
|
|
|
cfg = """ |
|
|
|
mode: production |
|
|
|
plugins: |
|
|
|
- hyde.ext.plugins.meta.MetaPlugin |
|
|
|
- hyde.ext.plugins.blog.DraftsPlugin |
|
|
|
""" |
|
|
|
import yaml |
|
|
|
s.config = Config(TEST_SITE, config_dict=yaml.load(cfg)) |
|
|
|
s.load() |
|
|
|
gen = Generator(s) |
|
|
|
gen.generate_all() |
|
|
|
assert not s.config.deploy_root_path.child_file( |
|
|
|
'blog/2013/may/draft-post.html').exists |
|
|
|
|
|
|
|
def test_drafts_are_published_in_development(self): |
|
|
|
s = Site(TEST_SITE) |
|
|
|
cfg = """ |
|
|
|
mode: development |
|
|
|
plugins: |
|
|
|
- hyde.ext.plugins.meta.MetaPlugin |
|
|
|
- hyde.ext.plugins.blog.DraftsPlugin |
|
|
|
""" |
|
|
|
import yaml |
|
|
|
s.config = Config(TEST_SITE, config_dict=yaml.load(cfg)) |
|
|
|
s.load() |
|
|
|
gen = Generator(s) |
|
|
|
gen.generate_all() |
|
|
|
assert s.config.deploy_root_path.child_file( |
|
|
|
'blog/2013/may/draft-post.html').exists |
|
|
|
|
|
|
|
|