diff --git a/setup.cfg b/setup.cfg
index 6986526..0ccddef 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -27,17 +27,3 @@
 [entry_points]
 tempest.test_plugins =
     telemetry_tests = telemetry_tempest_plugin.plugin:TelemetryTempestPlugin
-
-[compile_catalog]
-directory = telemetry_tempest_plugin/locale
-domain = telemetry_tempest_plugin
-
-[update_catalog]
-domain = telemetry_tempest_plugin
-output_dir = telemetry_tempest_plugin/locale
-input_file = telemetry_tempest_plugin/locale/telemetry_tempest_plugin.pot
-
-[extract_messages]
-keywords = _ gettext ngettext l_ lazy_gettext
-mapping_file = babel.cfg
-output_file = telemetry_tempest_plugin/locale/telemetry_tempest_plugin.pot
diff --git a/telemetry_tempest_plugin/exceptions.py b/telemetry_tempest_plugin/exceptions.py
index de22a41..cb9e6b3 100644
--- a/telemetry_tempest_plugin/exceptions.py
+++ b/telemetry_tempest_plugin/exceptions.py
@@ -38,8 +38,8 @@
             # of the exception message
             # Convert all arguments into their string representations...
             args = ["%s" % arg for arg in args]
-            self._error_string = (self._error_string +
-                                  "\nDetails: %s" % '\n'.join(args))
+            self._error_string = (self._error_string
+                                  + "\nDetails: %s" % '\n'.join(args))
 
     def __str__(self):
         return self._error_string
diff --git a/telemetry_tempest_plugin/scenario/utils.py b/telemetry_tempest_plugin/scenario/utils.py
index f3a4fa6..2b51160 100644
--- a/telemetry_tempest_plugin/scenario/utils.py
+++ b/telemetry_tempest_plugin/scenario/utils.py
@@ -44,8 +44,8 @@
         ).run(test_suite)
 
     if not result.wasSuccessful():
-        failures = (result.errors + result.failures +
-                    result.unexpectedSuccesses)
+        failures = (result.errors + result.failures
+                    + result.unexpectedSuccesses)
         if failures:
             test, bt = failures[0]
             name = test.test_data.get('name', test.id())
diff --git a/test-requirements.txt b/test-requirements.txt
index b2555d0..4cc98c8 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.0,<3.1.0 # 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.11.0  # Apache-2.0
+sphinx>=2.0.0,!=2.1.0 # BSD
+openstackdocstheme>=2.0.0  # Apache-2.0
 # releasenotes
-reno>=1.8.0 # Apache-2.0
+reno>=2.5.0 # Apache-2.0
diff --git a/tox.ini b/tox.ini
index e8b6fba..5ae7b00 100644
--- a/tox.ini
+++ b/tox.ini
@@ -24,7 +24,8 @@
 commands = {posargs}
 
 [testenv:docs]
-commands = python setup.py build_sphinx
+commands =
+  sphinx-build -a -E -W -b html doc/source doc/build/html
 
 [testenv:releasenotes]
 commands =
@@ -32,8 +33,8 @@
 
 [flake8]
 # E123, E125 skipped as they are invalid PEP-8.
-
+# W503 line break before binary operator
 show-source = True
-ignore = E123,E125
+ignore = E123,E125,W503
 builtins = _
 exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
