)
self.data_received = False
- @property
- def is_active(self):
- return (self.data_received and
- self._kill_event and
- not self._kill_event.ready())
-
@property
def has_updates(self):
"""Indicate whether the ovsdb Interface table has been updated.
the absence of updates at the expense of potential false
positives.
"""
- return bool(list(self.iter_stdout())) or not self.is_active
+ return bool(list(self.iter_stdout())) or not self.is_active()
def start(self, block=False, timeout=5):
super(SimpleInterfaceMonitor, self).start()
if block:
with eventlet.timeout.Timeout(timeout):
- while not self.is_active:
+ while not self.is_active():
eventlet.sleep()
def _kill(self, *args, **kwargs):
self.monitor.start(block=True, timeout=timeout)
def test_has_updates(self):
+ utils.wait_until_true(lambda: self.monitor.data_received is True)
self.assertTrue(self.monitor.has_updates,
'Initial call should always be true')
self.assertFalse(self.monitor.has_updates,
# License for the specific language governing permissions and limitations
# under the License.
-import eventlet.event
import mock
from neutron.agent.linux import ovsdb_monitor
super(TestSimpleInterfaceMonitor, self).setUp()
self.monitor = ovsdb_monitor.SimpleInterfaceMonitor()
- def test_is_active_is_false_by_default(self):
- self.assertFalse(self.monitor.is_active)
-
- def test_is_active_can_be_true(self):
- self.monitor.data_received = True
- self.monitor._kill_event = eventlet.event.Event()
- self.assertTrue(self.monitor.is_active)
-
def test_has_updates_is_true_by_default(self):
self.assertTrue(self.monitor.has_updates)
def test_has_updates_is_false_if_active_with_no_output(self):
target = ('neutron.agent.linux.ovsdb_monitor.SimpleInterfaceMonitor'
'.is_active')
- with mock.patch(target,
- new_callable=mock.PropertyMock(return_value=True)):
+ with mock.patch(target, return_value=True):
self.assertFalse(self.monitor.has_updates)
def test__kill_sets_data_received_to_false(self):