def test_inc_counter_app(self, num_nodes): class TestDriver(object): NUM_NODES = num_nodes COUNTER_LIMIT = 1024 NODES_PASSED_SETUP = set() NODES_PASSED_INC_COUNTER = set() ExampleServiceIncCounter.testdriver = TestDriver() app_helper.run( ExampleApp, ExampleServiceIncCounter, num_nodes=num_nodes, min_peers=num_nodes - 1, max_peers=num_nodes - 1, random_port= True # Use a random port to avoid 'Address already in use' errors )
def test_app_restart(): """ Test scenario: - Restart the app on 1st node when the node is on_wire_protocol_start - Check that this node gets on_wire_protocol_start at least once after restart - on_wire_protocol_start indicates that node was able to communicate after restart """ class TestDriver(object): APP_RESTARTED = False TEST_SUCCESSFUL = False ExampleServiceAppRestart.testdriver = TestDriver() app_helper.run(ExampleApp, ExampleServiceAppRestart, num_nodes=3, min_peers=2, max_peers=2)
def test_disconnect(): """ Test scenario: - Run app with min_peers > max_peers to force lots of peer.stop() (too many peers) - After X seconds of unsuccessful (by definition) discovery check that len(peers) <= min_peers """ class TestDriver(object): DISCOVERY_LOOP_SEC = 10 MIN_PEERS = 2 ExampleServiceAppDisconnect.testdriver = TestDriver() # To be able to run app with min_peers > max_peers one has to bypass asserts. app_helper.assert_config = lambda a, b, c, d: True app_helper.run(ExampleApp, ExampleServiceAppDisconnect, num_nodes=3, min_peers=2, max_peers=1, random_port=True)
assert isinstance(token, Token) assert isinstance(proto, self.wire_protocol) self.log('----------------------------------') self.log('on_receive token', token=token, proto=proto) self.send_token() def send_token(self): gevent.sleep(random.random()) token = Token(counter=random.randint(0, 1024), sender=self.address) self.log('----------------------------------') self.log('sending token', token=token) self.broadcast(token) class ExampleApp(BaseApp): client_name = 'exampleapp' version = '0.1' client_version = '%s/%s/%s' % (version, sys.platform, 'py%d.%d.%d' % sys.version_info[:3]) client_version_string = '%s/v%s' % (client_name, client_version) default_config = dict(BaseApp.default_config) default_config['client_version_string'] = client_version_string default_config['post_app_start_callback'] = None if __name__ == '__main__': import os print os.path.join( os.path.split(os.path.realpath(__file__))[0], "mns_python_sdk.log") app_helper.run(ExampleApp, ExampleService)