[flake8] Enable extra, optional hacking checks
Update test-requirements.txt to use latest version of:
* hacking
Enable the following off-by-default checks:
* [H203] Use assertIs(Not)None to check for None.
* [H204] Use assert(Not)Equal to check for equality.
* [H205] Use assert(Greater|Less)(Equal) for comparison.
* [H210] Require ‘autospec’, ‘spec’, or ‘spec_set’ in
mock.patch/mock.patch.object calls
* [H904] Delay string interpolations at logging calls.
Made necessary unit test changes to work with these checks.
Change-Id: I9db3445caa2883563fd7271d6bf0b24800e06c01
diff --git a/patrole_tempest_plugin/tests/unit/fixtures.py b/patrole_tempest_plugin/tests/unit/fixtures.py
index ce13029..52c2598 100644
--- a/patrole_tempest_plugin/tests/unit/fixtures.py
+++ b/patrole_tempest_plugin/tests/unit/fixtures.py
@@ -18,10 +18,12 @@
import fixtures
import mock
+import time
from tempest import clients
from tempest.common import credentials_factory as credentials
from tempest import config
+from tempest import test
from patrole_tempest_plugin import rbac_utils
@@ -73,13 +75,19 @@
'os_primary.credentials.project_id': self.PROJECT_ID,
'get_identity_version.return_value': 'v3'
}
- self.mock_test_obj = mock.Mock(__name__='foo', **test_obj_kwargs)
+ self.mock_test_obj = mock.Mock(
+ __name__='patrole_unit_test', spec=test.BaseTestCase,
+ os_primary=mock.Mock(), **test_obj_kwargs)
- # Mock out functionality that can't be used by unit tests.
- self.mock_time = mock.patch.object(rbac_utils, 'time').start()
- mock.patch.object(
- credentials, 'get_configured_admin_credentials').start()
- mock_admin_mgr = mock.patch.object(clients, 'Manager').start()
+ # Mock out functionality that can't be used by unit tests. Mocking out
+ # time.sleep is a test optimization.
+ self.mock_time = mock.patch.object(
+ rbac_utils, 'time', __name__='mock_time', spec=time).start()
+ mock.patch.object(credentials, 'get_configured_admin_credentials',
+ spec=object).start()
+ mock_admin_mgr = mock.patch.object(
+ clients, 'Manager', spec=clients.Manager,
+ roles_v3_client=mock.Mock(), roles_client=mock.Mock()).start()
self.roles_v3_client = mock_admin_mgr.return_value.roles_v3_client
self.set_roles(['admin', 'member'], [])
diff --git a/patrole_tempest_plugin/tests/unit/test_policy_authority.py b/patrole_tempest_plugin/tests/unit/test_policy_authority.py
index 2a8da9d..db651fc 100644
--- a/patrole_tempest_plugin/tests/unit/test_policy_authority.py
+++ b/patrole_tempest_plugin/tests/unit/test_policy_authority.py
@@ -499,7 +499,8 @@
def _test_validate_service(self, v2_services, v3_services,
expected_failure=False, expected_services=None):
- with mock.patch.object(policy_authority, 'clients') as m_creds:
+ with mock.patch.object(
+ policy_authority, 'clients', autospec=True) as m_creds:
m_creds.Manager().identity_services_client.list_services.\
return_value = v2_services
m_creds.Manager().identity_services_v3_client.list_services.\
diff --git a/patrole_tempest_plugin/tests/unit/test_rbac_rule_validation.py b/patrole_tempest_plugin/tests/unit/test_rbac_rule_validation.py
index afadb43..3065cfe 100644
--- a/patrole_tempest_plugin/tests/unit/test_rbac_rule_validation.py
+++ b/patrole_tempest_plugin/tests/unit/test_rbac_rule_validation.py
@@ -42,9 +42,9 @@
self.useFixture(
fixtures.ConfPatcher(rbac_test_role='Member', group='patrole'))
-
- # Mock the RBAC log so that it is not written to for any unit tests.
- mock.patch.object(rbac_rv.RBACLOG, 'info').start()
+ # Disable patrole log for unit tests.
+ self.useFixture(
+ fixtures.ConfPatcher(enable_reporting=False, group='patrole_log'))
@mock.patch.object(rbac_rv, 'LOG', autospec=True)
@mock.patch.object(rbac_rv, 'policy_authority', autospec=True)