From 92c66ee0ab096cfa52a42e4c60c038ecd3e6fecb Mon Sep 17 00:00:00 2001 From: Dougal Matthews Date: Thu, 9 Apr 2015 13:25:17 +0100 Subject: [PATCH] Fix a Unicode Issue with `mkdocs new` Fixes #441 --- mkdocs/main.py | 2 +- mkdocs/new.py | 12 ++++++++---- mkdocs/tests/new_tests.py | 28 ++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 mkdocs/tests/new_tests.py diff --git a/mkdocs/main.py b/mkdocs/main.py index d73f9091..8b9a9412 100755 --- a/mkdocs/main.py +++ b/mkdocs/main.py @@ -55,7 +55,7 @@ def main(cmd, args, options=None): build(config, clean_site_dir=clean_site_dir) gh_deploy(config) elif cmd == 'new': - new(args, options) + new(args) else: print('MkDocs (version {0})'.format(__version__)) print('mkdocs [help|new|build|serve|gh-deploy|json] {options}') diff --git a/mkdocs/new.py b/mkdocs/new.py index 88531757..af969670 100644 --- a/mkdocs/new.py +++ b/mkdocs/new.py @@ -1,10 +1,13 @@ # coding: utf-8 from __future__ import print_function + import os from io import open -config_text = 'site_name: My Docs\n' -index_text = """# Welcome to MkDocs +from mkdocs import compat + +config_text = compat.unicode('site_name: My Docs\n') +index_text = compat.unicode("""# Welcome to MkDocs For full documentation visit [mkdocs.org](http://mkdocs.org). @@ -21,10 +24,11 @@ For full documentation visit [mkdocs.org](http://mkdocs.org). docs/ index.md # The documentation homepage. ... # Other markdown pages, images and other files. -""" +""") -def new(args, options): +def new(args): + if len(args) != 1: print("Usage 'mkdocs new [directory-name]'") return diff --git a/mkdocs/tests/new_tests.py b/mkdocs/tests/new_tests.py new file mode 100644 index 00000000..e54fcb58 --- /dev/null +++ b/mkdocs/tests/new_tests.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python +# coding: utf-8 + +import tempfile +import unittest +import os + +from mkdocs import new + + +class NewTests(unittest.TestCase): + + def test_new(self): + + tempdir = tempfile.mkdtemp() + os.chdir(tempdir) + + new.new(["myproject", ]) + + expected_paths = [ + os.path.join(tempdir, "myproject"), + os.path.join(tempdir, "myproject", "mkdocs.yml"), + os.path.join(tempdir, "myproject", "docs"), + os.path.join(tempdir, "myproject", "docs", "index.md"), + ] + + for expected_path in expected_paths: + self.assertTrue(os.path.exists(expected_path))