]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Unify assertEqual for empty usages
authorlzklibj <lzklibj@cn.ibm.com>
Mon, 21 Dec 2015 09:11:56 +0000 (17:11 +0800)
committerKevin Benton <kevinbenton@buttewifi.com>
Thu, 7 Jan 2016 10:06:35 +0000 (10:06 +0000)
Update previous assertEqual(observed, *empty) usages to
assertEqual(*empty*, observed).

This patch aslo update hacking check for assertEqual with
empty types.

Change-Id: I981277618f92254a5beb9d3308a317d8c14e125c

17 files changed:
neutron/hacking/checks.py
neutron/tests/functional/agent/test_ovs_lib.py
neutron/tests/unit/agent/dhcp/test_agent.py
neutron/tests/unit/agent/linux/test_async_process.py
neutron/tests/unit/agent/linux/test_ip_lib.py
neutron/tests/unit/agent/linux/test_utils.py
neutron/tests/unit/api/v2/test_base.py
neutron/tests/unit/cmd/test_netns_cleanup.py
neutron/tests/unit/common/test_utils.py
neutron/tests/unit/db/test_allowedaddresspairs_db.py
neutron/tests/unit/extensions/test_external_net.py
neutron/tests/unit/extensions/test_extraroute.py
neutron/tests/unit/extensions/test_securitygroup.py
neutron/tests/unit/hacking/test_checks.py
neutron/tests/unit/plugins/ml2/test_ext_portsecurity.py
neutron/tests/unit/plugins/ml2/test_plugin.py
neutron/tests/unit/services/test_provider_configuration.py

index 5661b080c641fd1e6616783cc2711ec7621891db..4254a648935ba94ef19474f15eacdf49872ab42b 100644 (file)
@@ -208,6 +208,17 @@ def check_assertfalse(logical_line, filename):
             yield (0, msg)
 
 
+def check_assertempty(logical_line, filename):
+    if 'neutron/tests/' in filename:
+        msg = ("N330: Use assertEqual(*empty*, observed) instead of "
+               "assertEqual(observed, *empty*). *empty* contains "
+               "{}, [], (), set(), '', \"\"")
+        empties = r"(\[\s*\]|\{\s*\}|\(\s*\)|set\(\s*\)|'\s*'|\"\s*\")"
+        reg = r"assertEqual\(([^,]*,\s*)+?%s\)\s*$" % empties
+        if re.search(reg, logical_line):
+            yield (0, msg)
+
+
 def factory(register):
     register(validate_log_translations)
     register(use_jsonutils)
@@ -221,3 +232,4 @@ def factory(register):
     register(check_asserttrue)
     register(no_mutable_default_args)
     register(check_assertfalse)
+    register(check_assertempty)
index b6ed9618dc1388a401965bfca1e16a1241104292..722936728f5380f6268221428669e9260663579c 100644 (file)
@@ -92,8 +92,8 @@ class OVSBridgeTestCase(OVSBridgeTestBase):
         self.assertEqual(tag, self.ovs.db_get_val('Port', port_name, 'tag'))
         self.assertEqual(tag, self.br.get_port_tag_dict()[port_name])
         self.ovs.clear_db_attribute('Port', port_name, 'tag')
-        self.assertEqual(self.ovs.db_get_val('Port', port_name, 'tag'), [])
-        self.assertEqual(self.br.get_port_tag_dict()[port_name], [])
+        self.assertEqual([], self.ovs.db_get_val('Port', port_name, 'tag'))
+        self.assertEqual([], self.br.get_port_tag_dict()[port_name])
 
     def test_get_bridge_external_bridge_id(self):
         self.ovs.set_db_attribute('Bridge', self.br.br_name,
index deb6fe56446f135342d30c78fea19de36d64a7d7..91ae93accb99daf5bbf33d4e4806d33df962e32c 100644 (file)
@@ -432,7 +432,7 @@ class TestDhcpAgent(base.BaseTestCase):
             mock.patch.object(dhcp, "run"):
             report_state.return_value = const.AGENT_ALIVE
             dhcp._report_state()
-            self.assertEqual(dhcp.needs_resync_reasons, {})
+            self.assertEqual({}, dhcp.needs_resync_reasons)
 
             report_state.return_value = const.AGENT_REVIVED
             dhcp._report_state()
index 43ae302a27c40c0c5abc25e2fea380045c434012..db0321de457930afaca6ac981fc82543358efb22 100644 (file)
@@ -147,7 +147,7 @@ class TestAsyncProcess(base.BaseTestCase):
     def test__iter_queue_returns_empty_list_for_empty_queue(self):
         result = list(self.proc._iter_queue(eventlet.queue.LightQueue(),
                                             False))
-        self.assertEqual(result, [])
+        self.assertEqual([], result)
 
     def test__iter_queue_returns_queued_data(self):
         queue = eventlet.queue.LightQueue()
index d8584995bccedaafcf7a953a589038b3b1c6cf66..bde884315e9f6c12d2ce7132e87c435b8a504198 100644 (file)
@@ -410,7 +410,7 @@ class TestIpWrapper(base.BaseTestCase):
                 ip_ns_cmd_cls.assert_has_calls([mock.call().exists('ns')])
                 self.assertNotIn(mock.call().delete('ns'),
                                  ip_ns_cmd_cls.return_value.mock_calls)
-                self.assertEqual(mock_is_empty.mock_calls, [])
+                self.assertEqual([], mock_is_empty.mock_calls)
 
     def test_garbage_collect_namespace_existing_empty_ns(self):
         with mock.patch.object(ip_lib, 'IpNetnsCommand') as ip_ns_cmd_cls:
@@ -485,7 +485,7 @@ class TestIpWrapper(base.BaseTestCase):
     def test_add_device_to_namespace_is_none(self):
         dev = mock.Mock()
         ip_lib.IPWrapper().add_device_to_namespace(dev)
-        self.assertEqual(dev.mock_calls, [])
+        self.assertEqual([], dev.mock_calls)
 
 
 class TestIPDevice(base.BaseTestCase):
index 1ca469b9a74a71c2ac29120ced2e66d47f390f87..7a53ee4dfe8aa8488add0707b6778edfd1f330c3 100644 (file)
@@ -61,7 +61,7 @@ class AgentUtilsExecuteTest(base.BaseTestCase):
         self.mock_popen.return_value = ["", ""]
         stdout = utils.execute(["ls", self.test_file[:-1]],
                                check_exit_code=False)
-        self.assertEqual(stdout, "")
+        self.assertEqual("", stdout)
 
     def test_execute_raises(self):
         self.mock_popen.side_effect = RuntimeError
@@ -216,11 +216,11 @@ class TestFindChildPids(base.BaseTestCase):
     def test_returns_empty_list_for_exit_code_1(self):
         with mock.patch.object(utils, 'execute',
                                side_effect=RuntimeError('Exit code: 1')):
-            self.assertEqual(utils.find_child_pids(-1), [])
+            self.assertEqual([], utils.find_child_pids(-1))
 
     def test_returns_empty_list_for_no_output(self):
         with mock.patch.object(utils, 'execute', return_value=''):
-            self.assertEqual(utils.find_child_pids(-1), [])
+            self.assertEqual([], utils.find_child_pids(-1))
 
     def test_returns_list_of_child_process_ids_for_good_ouput(self):
         with mock.patch.object(utils, 'execute', return_value=' 123 \n 185\n'):
index bc6c32bfd8822de62532810f00b63dc4153ca634..7e3dbc3f19a000fc06ce9b95cf2307d588015942 100644 (file)
@@ -665,7 +665,7 @@ class JSONV2TestCase(APIv2TestBase, testlib_api.WebTestCase):
         res = self.api.get(_get_path('networks'),
                            params=params).json
 
-        self.assertEqual(res['networks'], [])
+        self.assertEqual([], res['networks'])
 
         previous_links = []
         if 'networks_links' in res:
@@ -728,7 +728,7 @@ class JSONV2TestCase(APIv2TestBase, testlib_api.WebTestCase):
                   'page_reverse': ['True']}
         res = self.api.get(_get_path('networks'),
                            params=params).json
-        self.assertEqual(res['networks'], [])
+        self.assertEqual([], res['networks'])
 
         next_links = []
         if 'networks_links' in res:
index 23eb2152c88cdb4c87dce16f7cff6eb24689af10..e12292d42a85908c30891964d15bbdf8238716d4 100644 (file)
@@ -136,7 +136,7 @@ class TestNetnsCleanup(base.BaseTestCase):
                     util.unplug_device(conf, device)
 
                     mock_get_bridge_for_iface.assert_called_once_with('tap1')
-                    self.assertEqual(ovs_br_cls.mock_calls, [])
+                    self.assertEqual([], ovs_br_cls.mock_calls)
                     self.assertTrue(debug.called)
 
     def _test_destroy_namespace_helper(self, force, num_devices):
index f62ed59eeaa54551c76f32bbb20d1484ec3c5c08..f9bc4b2165503b7ca6448c119122db29ab9130f6 100644 (file)
@@ -72,7 +72,7 @@ class TestParseMappings(base.BaseTestCase):
                          {'key1': 'val', 'key2': 'val'})
 
     def test_parse_mappings_succeeds_for_no_mappings(self):
-        self.assertEqual(self.parse(['']), {})
+        self.assertEqual({}, self.parse(['']))
 
 
 class TestParseTunnelRangesMixin(object):
index c62246521eb05146ea459dc7592fd8080d35040d..491e773edbd8df725cc46d90394283c42e2e9c8c 100644 (file)
@@ -317,5 +317,5 @@ class TestAllowedAddressPairs(AllowedAddressPairDBTestCase):
             req = self.new_update_request('ports', update_port,
                                           port['port']['id'])
             port = self.deserialize(self.fmt, req.get_response(self.api))
-            self.assertEqual(port['port'][addr_pair.ADDRESS_PAIRS], [])
+            self.assertEqual([], port['port'][addr_pair.ADDRESS_PAIRS])
             self._delete('ports', port['port']['id'])
index 25e59ad593034fb54cdc227c0d9dce96138b0aff..131fefd598cef259244a6f7e638d359d434f9a64 100644 (file)
@@ -98,7 +98,7 @@ class ExtNetDBTestCase(test_db_base_plugin_v2.NeutronDbPluginV2TestCase):
         plugin = manager.NeutronManager.get_plugin()
         ctx = context.Context(None, None, is_admin=True)
         result = plugin.get_networks(ctx, filters=None)
-        self.assertEqual(result, [])
+        self.assertEqual([], result)
 
     def test_update_network_set_external_non_admin_fails(self):
         # Assert that a non-admin user cannot update the
@@ -117,7 +117,7 @@ class ExtNetDBTestCase(test_db_base_plugin_v2.NeutronDbPluginV2TestCase):
         ctx = context.Context(None, None, is_admin=True)
         model = models_v2.Network
         conditions = plugin._network_filter_hook(ctx, model, [])
-        self.assertEqual(conditions, [])
+        self.assertEqual([], conditions)
 
     def test_network_filter_hook_nonadmin_context(self):
         plugin = manager.NeutronManager.get_plugin()
index 8b4f2e69b325ff44fe98e370576a19a4925837b6..371056d51164d66d3246762f67bfecf1836e10db 100644 (file)
@@ -95,7 +95,7 @@ class ExtraRouteDBTestCaseBase(object):
                                                 None, p['port']['id'], routes)
                     body = self._update('routers', r['router']['id'],
                                         {'router': {'routes': None}})
-                    self.assertEqual(body['router']['routes'], [])
+                    self.assertEqual([], body['router']['routes'])
                     self._routes_update_cleanup(p['port']['id'],
                                                 None, r['router']['id'], [])
 
index c7195803b9d214477c5bad874547f51db774432c..f7da891fe1c53720674ee059332dc23a07943bcb 100644 (file)
@@ -1248,8 +1248,8 @@ class TestSecurityGroups(SecurityGroupDBTestCase):
                                                   port['port']['id'])
                     res = self.deserialize(self.fmt,
                                            req.get_response(self.api))
-                    self.assertEqual(res['port'].get(ext_sg.SECURITYGROUPS),
-                                     [])
+                    self.assertEqual([],
+                                     res['port'].get(ext_sg.SECURITYGROUPS))
                     self._delete('ports', port['port']['id'])
 
     def test_update_port_remove_security_group_none(self):
@@ -1269,8 +1269,8 @@ class TestSecurityGroups(SecurityGroupDBTestCase):
                                                   port['port']['id'])
                     res = self.deserialize(self.fmt,
                                            req.get_response(self.api))
-                    self.assertEqual(res['port'].get(ext_sg.SECURITYGROUPS),
-                                     [])
+                    self.assertEqual([],
+                                     res['port'].get(ext_sg.SECURITYGROUPS))
                     self._delete('ports', port['port']['id'])
 
     def test_create_port_with_bad_security_group(self):
index d7295d34b2f93d111a56f41910cbce44403055e9..be65bd7e9e080bcfd5894244647819e3dc2c0393 100644 (file)
@@ -216,3 +216,27 @@ class HackingTestCase(base.BaseTestCase):
         self.assertEqual(
             0, len(list(checks.check_assertfalse(pass_code,
                                             "neutron/tests/test_assert.py"))))
+
+    def test_assertempty(self):
+        fail_code = """
+                test_empty = %s
+                self.assertEqual(test_empty, %s)
+                """
+        pass_code1 = """
+                test_empty = %s
+                self.assertEqual(%s, test_empty)
+                """
+        pass_code2 = """
+                self.assertEqual(123, foo(abc, %s))
+                """
+        empty_cases = ['{}', '[]', '""', "''", '()', 'set()']
+        for ec in empty_cases:
+            self.assertEqual(
+                1, len(list(checks.check_assertempty(fail_code % (ec, ec),
+                                            "neutron/tests/test_assert.py"))))
+            self.assertEqual(
+                0, len(list(checks.check_assertfalse(pass_code1 % (ec, ec),
+                                            "neutron/tests/test_assert.py"))))
+            self.assertEqual(
+                0, len(list(checks.check_assertfalse(pass_code2 % ec,
+                                            "neutron/tests/test_assert.py"))))
index e6ea22e81fe56fb4d91ce416d6025f939d4f66a1..a9c76bcc30d6e4cd6353c04daca8217b3d67b243 100644 (file)
@@ -63,4 +63,4 @@ class PSExtDriverTestCase(test_plugin.Ml2PluginV2TestCase,
                 self.assertEqual(res.status_int, 201)
                 port = self.deserialize('json', res)
                 self.assertFalse(port['port'][psec.PORTSECURITY])
-                self.assertEqual(port['port']['security_groups'], [])
+                self.assertEqual([], port['port']['security_groups'])
index 2d13438acd455586d31ad9c72b4af9bbb68c552d..94b962cfcfcf5d404509cdb2516442ee1bae3041 100644 (file)
@@ -1303,8 +1303,8 @@ class TestMultiSegmentNetworks(Ml2PluginV2TestCase):
             req = self.new_delete_request('networks', network_id)
             res = req.get_response(self.api)
             self.assertEqual(2, rs.call_count)
-        self.assertEqual(ml2_db.get_network_segments(
-            self.context.session, network_id), [])
+        self.assertEqual([], ml2_db.get_network_segments(
+            self.context.session, network_id))
         self.assertIsNone(ml2_db.get_dynamic_segment(
             self.context.session, network_id, 'physnet2'))
 
index 21531a41a90d5856d1df87d48f127197e65cb707..a3d2b6f9693f457986ea9d6493cb02506ef800af 100644 (file)
@@ -35,7 +35,7 @@ class ParseServiceProviderConfigurationTestCase(base.BaseTestCase):
 
     def test_default_service_provider_configuration(self):
         providers = cfg.CONF.service_providers.service_provider
-        self.assertEqual(providers, [])
+        self.assertEqual([], providers)
 
     def test_parse_single_service_provider_opt(self):
         self._set_override([constants.LOADBALANCER +