def test_on_ready(self): self.heard_event = False provider = Provider('valid-token') @provider.on('heardEvent') def fn(*args): self.assertTrue(provider.ready, 'Provider was not ready') self.heard_event = True @provider.on('heardSensor') def fn(*args): self.assertTrue(self.heard_event, 'Order was not preserved') provider.send_event('ping') @provider.on('pong') def fn(*args): self.packet_received.set() provider.send_event('test').send_sensor('test') provider.connect(**CONNECT_KWARGS) self.wait_for_packet(provider)
def setUp(self): super(ProviderTestCase, self).setUp() self.client_type = 'provider' self.provider = Provider('valid-token') self.provider.connect(**CONNECT_KWARGS) self.client = self.provider
class ProviderTestCase(HeimdallrClientTestCase): def setUp(self): super(ProviderTestCase, self).setUp() self.client_type = 'provider' self.provider = Provider('valid-token') self.provider.connect(**CONNECT_KWARGS) self.client = self.provider def tearDown(self): super(ProviderTestCase, self).tearDown() def test_receives_packets(self): def fn(data): self.assertDictEqual( data, {'ping': 'data'}, 'Ping data did not match' ) self.packet_received.set() self.provider.on('ping', fn) self.trigger('ping') self.wait_for_packet() def test_raises_exceptions(self): self.trigger('JSON-error') self.assertRaises( HeimdallrClientException, partial(self.wait_for_packet, self.provider) ) self.trigger('js-error') self.assertRaises( HeimdallrClientException, partial(self.wait_for_packet, self.provider) ) def test_decorates_callbacks(self): @self.provider.on('ping') def fn(data): self.assertDictEqual( data, {'ping': 'data'}, 'Ping data did not match' ) self.packet_received.set() self.trigger('ping') self.wait_for_packet() def test_send_event(self): self.provider.on('heardEvent', self.set_packet_received) self.provider.send_event('test') self.wait_for_packet() def test_send_sensor(self): self.provider.on('heardSensor', self.set_packet_received) self.provider.send_sensor('test') self.wait_for_packet() def test_send_stream(self): self.provider.on('heardStream', self.set_packet_received) self.provider.send_stream('\x21') self.wait_for_packet() def test_on_ready(self): self.heard_event = False provider = Provider('valid-token') @provider.on('heardEvent') def fn(*args): self.assertTrue(provider.ready, 'Provider was not ready') self.heard_event = True @provider.on('heardSensor') def fn(*args): self.assertTrue(self.heard_event, 'Order was not preserved') provider.send_event('ping') @provider.on('pong') def fn(*args): self.packet_received.set() provider.send_event('test').send_sensor('test') provider.connect(**CONNECT_KWARGS) self.wait_for_packet(provider) def test_multiple_listeners(self): self.called_first = False @self.provider.on('ping') def fn(*args): self.called_first = True @self.provider.on('ping') def fn(*args): self.assertTrue(self.called_first, 'Order was not preserved') self.set_packet_received() self.trigger('ping') self.wait_for_packet() def test_remove_listener(self): def callback(*args): self.fail('Called removed listener') @self.provider.on('ping') def fn(*args): callback() @self.provider.on('ping') def fn(*args): callback() self.provider.remove_listener('ping') self.provider.on('ping', callback) @self.provider.on('ping') def fn(*args): self.set_packet_received() self.provider.remove_listener('ping', callback) self.trigger('ping') self.wait_for_packet() def test_completes_control(self): self.provider.on('completedControl', self.set_packet_received) self.provider.completed('test') self.wait_for_packet()