Repository: mkdocs/mkdocs

Issue:
in minimal mkdocs.yml file... "ERROR   -  Config value: pages"
Congrats on 0.13 today!

Am playing with the site navigation and have run directly into a wall.

I was using the automatically generated navigation, which is working fine, but I want to reorder some of the automatic listing and then realized the only way to do this for real was to define the entire navigation.

I then hit the `ERROR   -  Config value: pages` error below and began to narrow the focus... until I have a single `site_name` and `pages` entry, and mkdocs fails.

I'm running 0.13 in a virtualenv - any ideas?  The error message says I have an error, but the output it gives hasn't clued me into what I've done wrong.

It smells like a python/virtualenv/version thing...

```
(venv) $ pip install --upgrade mkdocs
Requirement already up-to-date: mkdocs in ./venv/lib/python2.7/site-packages
Requirement already up-to-date: click>=4.0 in ./venv/lib/python2.7/site-packages (from mkdocs)
Requirement already up-to-date: ghp-import>=0.4.1 in ./venv/lib/python2.7/site-packages (from mkdocs)
Requirement already up-to-date: Jinja2>=2.7.1 in ./venv/lib/python2.7/site-packages (from mkdocs)
Requirement already up-to-date: livereload>=2.3.2 in ./venv/lib/python2.7/site-packages (from mkdocs)
Requirement already up-to-date: Markdown>=2.3.1 in ./venv/lib/python2.7/site-packages (from mkdocs)
Requirement already up-to-date: PyYAML>=3.10 in ./venv/lib/python2.7/site-packages (from mkdocs)
Requirement already up-to-date: six>=1.9.0 in ./venv/lib/python2.7/site-packages (from mkdocs)
Requirement already up-to-date: tornado>=4.1 in ./venv/lib/python2.7/site-packages (from mkdocs)
Requirement already up-to-date: markupsafe in ./venv/lib/python2.7/site-packages (from Jinja2>=2.7.1->mkdocs)
Requirement already up-to-date: backports.ssl-match-hostname in ./venv/lib/python2.7/site-packages (from tornado>=4.1->mkdocs)
Requirement already up-to-date: certifi in ./venv/lib/python2.7/site-packages (from tornado>=4.1->mkdocs)
Cleaning up...
```

```
(venv) $ cat mkdocs.yml 
site_name: MyTest

pages:
- 'testing.md'
```

```
(venv) $ mkdocs build
ERROR   -  Config value: pages. Error: Invalid pages config. set([<type 'str'>]) set([<type 'unicode'>, <type 'dict'>]) 
Error: Errors found in the config file.
```



Discussion:
Ah, sorry. This is a silly mistake on my end. I'm rolling out a bug fix release just for this. Expect a 0.13.1 to arrive within the next hour.


Resolving patch:
diff --git a/mkdocs/__init__.py b/mkdocs/__init__.py
--- a/mkdocs/__init__.py
+++ b/mkdocs/__init__.py
@@ -1 +1 @@
-__version__ = '0.13.0'
+__version__ = '0.13.1'
diff --git a/mkdocs/config/config_options.py b/mkdocs/config/config_options.py
--- a/mkdocs/config/config_options.py
+++ b/mkdocs/config/config_options.py
@@ -361,10 +361,10 @@ def run_validation(self, value):
         # TODO: Remove in 1.0
         config_types = set(type(l) for l in value)
 
-        if config_types.issubset(set([six.text_type, dict, ])):
+        if config_types.issubset(set([six.text_type, dict, str])):
             return value
 
-        if config_types.issubset(set([six.text_type, list, ])):
+        if config_types.issubset(set([six.text_type, list, str])):
             return legacy.pages_compat_shim(value)
 
         raise ValidationError("Invalid pages config. {0} {1}".format(


Test patch:
diff --git a/mkdocs/tests/integration.py b/mkdocs/tests/integration.py
--- a/mkdocs/tests/integration.py
+++ b/mkdocs/tests/integration.py
@@ -25,6 +25,7 @@
 DIR = os.path.dirname(__file__)
 MKDOCS_CONFIG = os.path.abspath(os.path.join(DIR, '../../mkdocs.yml'))
 MKDOCS_THEMES = utils.get_theme_names()
+TEST_PROJECTS = os.path.abspath(os.path.join(DIR, 'integration'))
 
 
 @click.command()
@@ -40,7 +41,14 @@ def main(output=None):
         command = ['mkdocs', 'build', '--site-dir', out, '--theme', theme]
         subprocess.check_call(command, cwd=project_dir)
 
-    print("The theme builds are available in {0}".format(output))
+    for project in os.listdir(TEST_PROJECTS):
+
+        project_dir = os.path.join(TEST_PROJECTS, project)
+        out = os.path.join(output, project)
+        command = ['mkdocs', 'build', '--site-dir', out]
+        subprocess.check_call(command, cwd=project_dir)
+
+    print("Theme and integration builds are available in {0}".format(output))
 
 if __name__ == '__main__':
     main()
diff --git a/mkdocs/tests/integration/minimal/docs/testing.md b/mkdocs/tests/integration/minimal/docs/testing.md
new file mode 100644
--- /dev/null
+++ b/mkdocs/tests/integration/minimal/docs/testing.md
@@ -0,0 +1,17 @@
+# Welcome to MkDocs
+
+For full documentation visit [mkdocs.org](http://mkdocs.org).
+
+## Commands
+
+* `mkdocs new [dir-name]` - Create a new project.
+* `mkdocs serve` - Start the live-reloading docs server.
+* `mkdocs build` - Build the documentation site.
+* `mkdocs help` - Print this help message.
+
+## Project layout
+
+    mkdocs.yml    # The configuration file.
+    docs/
+        index.md  # The documentation homepage.
+        ...       # Other markdown pages, images and other files.
diff --git a/mkdocs/tests/integration/minimal/mkdocs.yml b/mkdocs/tests/integration/minimal/mkdocs.yml
new file mode 100644
--- /dev/null
+++ b/mkdocs/tests/integration/minimal/mkdocs.yml
@@ -0,0 +1,6 @@
+site_name: MyTest
+
+pages:
+- 'testing.md'
+
+site_author: "Tom Christie & Dougal Matthews"