示例#1
0
    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
        )
示例#2
0
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)
示例#3
0
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)
示例#4
0
        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)