Merge "Add Python 3 Train unit tests"
diff --git a/.zuul.yaml b/.zuul.yaml
index f7b270c..f9d972e 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -21,8 +21,8 @@
       - ^releasenotes/.*
       - ^setup.cfg$
     vars:
-      devstack_localrc:
-        TEMPEST_PLUGINS: "'/opt/stack/patrole'"
+      tempest_plugins:
+        - patrole
       devstack_plugins:
         patrole: https://opendev.org/openstack/patrole.git
       devstack_services:
@@ -52,8 +52,8 @@
       - openstack/patrole
     irrelevant-files: *patrole-irrelevant-files
     vars:
-      devstack_localrc:
-        TEMPEST_PLUGINS: "'{{ ansible_user_dir }}/src/opendev.org/openstack/patrole'"
+      tempest_plugins:
+        - patrole
       devstack_plugins:
         patrole: https://opendev.org/openstack/patrole.git
       devstack_services:
@@ -103,18 +103,27 @@
     nodeset: openstack-single-node-xenial
     parent: patrole-member
     override-checkout: stable/rocky
+    vars:
+      devstack_localrc:
+        TEMPEST_PLUGINS: /opt/stack/patrole
 
 - job:
     name: patrole-member-queens
     nodeset: openstack-single-node-xenial
     parent: patrole-member
     override-checkout: stable/queens
+    vars:
+      devstack_localrc:
+        TEMPEST_PLUGINS: /opt/stack/patrole
 
 - job:
     name: patrole-member-pike
     nodeset: openstack-single-node-xenial
     parent: patrole-member
     override-checkout: stable/pike
+    vars:
+      devstack_localrc:
+        TEMPEST_PLUGINS: /opt/stack/patrole
 
 - job:
     name: patrole-multinode-admin
@@ -164,8 +173,9 @@
       - name: openstack/patrole
       - name: openstack/neutron-tempest-plugin
     vars:
-      devstack_localrc:
-        TEMPEST_PLUGINS: "'/opt/stack/patrole /opt/stack/neutron-tempest-plugin'"
+      tempest_plugins:
+        - patrole
+        - neutron-tempest-plugin
       devstack_plugins:
         neutron: https://opendev.org/openstack/neutron.git
         patrole: https://opendev.org/openstack/patrole.git
diff --git a/doc/requirements.txt b/doc/requirements.txt
index 67530ff..b03ff2c 100644
--- a/doc/requirements.txt
+++ b/doc/requirements.txt
@@ -1,7 +1,8 @@
 # The order of packages is significant, because pip processes them in the order
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
-sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
-openstackdocstheme>=1.18.1 # Apache-2.0
+sphinx!=1.6.6,!=1.6.7,>=1.6.2,<2.0.0;python_version=='2.7' # BSD
+sphinx!=1.6.6,!=1.6.7,!=2.1.0,>=1.6.2;python_version>='3.4' # BSD
+openstackdocstheme>=1.20.0 # Apache-2.0
 reno>=2.5.0 # Apache-2.0
 sphinxcontrib-apidoc>=0.2.0  # BSD
diff --git a/doc/source/conf.py b/doc/source/conf.py
index 45d8021..57d763e 100755
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -63,7 +63,7 @@
 master_doc = 'index'
 
 # General information about the project.
-project = u'patrole'
+
 copyright = u'2017, Patrole Developers'
 
 # If true, '()' will be appended to :func: etc. cross-reference text.
@@ -93,15 +93,15 @@
 html_last_updated_fmt = '%Y-%m-%d %H:%M'
 
 # Output file base name for HTML help builder.
-htmlhelp_basename = '%sdoc' % project
+htmlhelp_basename = 'patroledoc'
 
 # Grouping the document tree into LaTeX files. List of tuples
 # (source start file, target name, title, author, documentclass
 # [howto/manual]).
 latex_documents = [
     ('index',
-     '%s.tex' % project,
-     u'%s Documentation' % project,
+     'patrole.tex',
+     u'patrole Documentation',
      u'Patrole Developers', 'manual'),
 ]