Merge "Test case for openstack_groups"
diff --git a/.zuul.yaml b/.zuul.yaml
index 5b15917..0356a22 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -4,13 +4,11 @@
       - tempest-plugin-jobs
     check:
       jobs:
-        - keystone-dsvm-functional
         - keystone-dsvm-py3-functional
-        - keystone-dsvm-functional-federation-opensuse15:
-            voting: false
         - keystone-dsvm-py3-functional-federation-opensuse15:
             voting: false
+        - keystone-dsvm-py3-functional-federation-opensuse15-k2k
     gate:
       jobs:
-        - keystone-dsvm-functional
         - keystone-dsvm-py3-functional
+        - keystone-dsvm-py3-functional-federation-opensuse15-k2k
diff --git a/keystone_tempest_plugin/tests/scenario/test_federated_authentication.py b/keystone_tempest_plugin/tests/scenario/test_federated_authentication.py
index ef45870..bb06748 100644
--- a/keystone_tempest_plugin/tests/scenario/test_federated_authentication.py
+++ b/keystone_tempest_plugin/tests/scenario/test_federated_authentication.py
@@ -119,9 +119,9 @@
         self._setup_protocol()
 
     def _str_from_xml(self, xml, path):
-        l = xml.xpath(path, namespaces=self.ECP_SAML2_NAMESPACES)
-        self.assertEqual(1, len(l))
-        return l[0]
+        item = xml.xpath(path, namespaces=self.ECP_SAML2_NAMESPACES)
+        self.assertEqual(1, len(item))
+        return item[0]
 
     def _get_sp_authn_request(self):
         resp = self.saml2_client.send_service_provider_request(
diff --git a/setup.cfg b/setup.cfg
index a7094e0..82246c6 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -13,10 +13,9 @@
     License :: OSI Approved :: Apache Software License
     Operating System :: POSIX :: Linux
     Programming Language :: Python
-    Programming Language :: Python :: 2
-    Programming Language :: Python :: 2.7
     Programming Language :: Python :: 3
-    Programming Language :: Python :: 3.5
+    Programming Language :: Python :: 3.6
+    Programming Language :: Python :: 3.7
 
 [files]
 packages =
diff --git a/test-requirements.txt b/test-requirements.txt
index 327b0a4..16165e0 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -2,10 +2,9 @@
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
 
-hacking>=1.1.0,<1.2.0 # Apache-2.0
+hacking>=3.0,<3.1.0;python_version>='3.5' # 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,>=1.6.2;python_version>='3.4'  # BSD
+sphinx!=1.6.6,!=1.6.7,>=1.6.2  # BSD
 openstackdocstheme>=1.18.1 # Apache-2.0
 
 # releasenotes
diff --git a/tox.ini b/tox.ini
index ff0bd9a..ecc7ddf 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,7 +1,8 @@
 [tox]
-minversion = 2.0
-envlist = py35,py27,pypy,pep8
+minversion = 3.1.1
+envlist = py36,pypy,pep8
 skipsdist = True
+ignore_basepython_conflict = True
 
 [testenv]
 usedevelop = True
@@ -11,30 +12,25 @@
    PYTHONWARNINGS=default::DeprecationWarning
 deps = -r{toxinidir}/test-requirements.txt
 commands = python setup.py test --slowest --testr-args='{posargs}'
+basepython = python3
 
 [testenv:pep8]
-basepython = python3
 commands = flake8 {posargs}
 
 [testenv:venv]
-basepython = python3
 commands = {posargs}
 
 [testenv:cover]
-basepython = python3
 commands = python setup.py test --coverage --testr-args='{posargs}'
 
 [testenv:docs]
-basepython = python3
 commands = sphinx-build -W -b html -d doc/buld/doctrees doc/source doc/build/html
 
 [testenv:releasenotes]
-basepython = python3
 commands =
   sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
 
 [testenv:debug]
-basepython = python3
 commands = oslo_debug_helper {posargs}
 
 [flake8]