- api = arvados.api('v1', cache=False)
- self.ws = arvados.events.subscribe(arvados.api('v1', cache=False), [['object_uuid', 'is_a', 'arvados#human']], self.on_event, poll_fallback=2)
- if not isinstance(self.ws, self.WS_TYPE):
- self.fail()
- self.subscribed.wait(10)
- self.h = api.humans().create(body={}).execute()
- self.done.wait(10)
- self.assertEqual(3, self.state)
+ events = Queue.Queue(3)
+ self.ws = arvados.events.subscribe(
+ arvados.api('v1'), [['object_uuid', 'is_a', 'arvados#human']],
+ events.put, poll_fallback=2)
+ self.assertIsInstance(self.ws, self.WS_TYPE)
+ self.assertEqual(200, events.get(True, 10)['status'])
+ human = arvados.api('v1').humans().create(body={}).execute()
+ self.assertEqual(human['uuid'], events.get(True, 10)['object_uuid'])
+ self.assertTrue(events.empty(), "got more events than expected")
+
+ def tearDown(self):
+ try:
+ self.ws.close()
+ except AttributeError:
+ pass
+ super(EventTestBase, self).tearDown()
+