From e9ee5bd308bedd09eed1bf436852ec9898395ffc Mon Sep 17 00:00:00 2001 From: "Dariusz Smigiel (dasm)" Date: Mon, 26 Oct 2015 12:12:38 +0100 Subject: [PATCH] Add abstractmethod to FirewallDriver abstract class FirewallDriver is abstract base class but do not have abstractmethods. Updated methods to correspond with use-case of class. Closes-bug: #1119119 Change-Id: I4b27b27d66c0b89cd9b65541cc1703103a2b00d2 --- neutron/agent/firewall.py | 4 ++-- .../tests/unit/agent/test_securitygroups_rpc.py | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/neutron/agent/firewall.py b/neutron/agent/firewall.py index 04a327b21..23d772159 100644 --- a/neutron/agent/firewall.py +++ b/neutron/agent/firewall.py @@ -57,12 +57,12 @@ class FirewallDriver(object): remote_group_id will also remaining membership update management """ + @abc.abstractmethod def prepare_port_filter(self, port): """Prepare filters for the port. This method should be called before the port is created. """ - raise NotImplementedError() def apply_port_filter(self, port): """Apply port filter. @@ -74,6 +74,7 @@ class FirewallDriver(object): """ raise NotImplementedError() + @abc.abstractmethod def update_port_filter(self, port): """Refresh security group rules from data store @@ -81,7 +82,6 @@ class FirewallDriver(object): the security group the port is a member of or if the group gains or looses a rule. """ - raise NotImplementedError() def remove_port_filter(self, port): """Stop filtering port.""" diff --git a/neutron/tests/unit/agent/test_securitygroups_rpc.py b/neutron/tests/unit/agent/test_securitygroups_rpc.py index 7f63c31c8..ca496baf3 100644 --- a/neutron/tests/unit/agent/test_securitygroups_rpc.py +++ b/neutron/tests/unit/agent/test_securitygroups_rpc.py @@ -68,6 +68,19 @@ def set_firewall_driver(firewall_driver): group='SECURITYGROUP') +class FakeFirewallDriver(firewall_base.FirewallDriver): + """Fake FirewallDriver + + FirewallDriver is base class for other types of drivers. To be able to + use it in tests, it's needed to overwrite all abstract methods. + """ + def prepare_port_filter(self, port): + raise NotImplementedError() + + def update_port_filter(self, port): + raise NotImplementedError() + + class SecurityGroupRpcTestPlugin(test_sg.SecurityGroupTestPlugin, sg_db_rpc.SecurityGroupServerRpcMixin): def __init__(self): @@ -1117,7 +1130,7 @@ class BaseSecurityGroupAgentRpcTestCase(base.BaseTestCase): mock.patch('neutron.agent.linux.iptables_manager').start() self.default_firewall = self.agent.firewall self.firewall = mock.Mock() - firewall_object = firewall_base.FirewallDriver() + firewall_object = FakeFirewallDriver() self.firewall.defer_apply.side_effect = firewall_object.defer_apply self.agent.firewall = self.firewall self.fake_device = {'device': 'fake_device', -- 2.45.2