diff --git a/py/test/dsession/dsession.py b/py/test/dsession/dsession.py index 177544117..54a38c8e7 100644 --- a/py/test/dsession/dsession.py +++ b/py/test/dsession/dsession.py @@ -170,7 +170,11 @@ class DSession(Session): self.host2pending[host] = [] def removehost(self, host): - pending = self.host2pending.pop(host) + try: + pending = self.host2pending.pop(host) + except KeyError: + # this happens if we didn't receive a hostup event yet + return [] for item in pending: del self.item2host[item] return pending diff --git a/py/test/dsession/testing/test_dsession.py b/py/test/dsession/testing/test_dsession.py index da6abf779..3daaaae5a 100644 --- a/py/test/dsession/testing/test_dsession.py +++ b/py/test/dsession/testing/test_dsession.py @@ -47,7 +47,8 @@ class TestDSession: pending = session.removehost(host) assert pending == [item] assert item not in session.item2host - py.test.raises(Exception, "session.removehost(host)") + l = session.removehost(host) + assert not l def test_senditems_removeitems(self, testdir): item = testdir.getitem("def test_func(): pass")