コード例 #1
0
    def test_event_pipeline_output():
        import sys
        from io import StringIO

        out = StringIO()
        sys.stdout = out

        event_manager = EventManager()

        def test_listener_1(bot=None):
            bot()

        def test_listener_2(bot=None):
            bot()

        def test_listener_3(bot=None):
            bot()

        def test_listener_4(bot=None):
            bot()

        event_manager.add_listener('test1', test_listener_1, priority=-100)
        event_manager.add_listener('test1', test_listener_2, priority=0)
        event_manager.add_listener('test1', test_listener_3, priority=0)
        event_manager.add_listener('test1', test_listener_4, priority=100)
        event_manager.add_listener('test2', test_listener_1, priority=100)
        event_manager.print_all_event_pipelines()

        assert 'Event pipeline for "test1":' in out.getvalue().strip()
        assert '-100 (test_listener_1) -> 0 (test_listener_2 -> test_listener_3) -> 100 (test_listener_4)' in out.getvalue(
        ).strip()
        assert 'Event pipeline for "test2":' in out.getvalue().strip()
        assert '100 (test_listener_1)' in out.getvalue().strip()
コード例 #2
0
    def test_add_listener():
        event_manager = EventManager()

        test_listener = Mock()
        event_manager.add_listener('test', test_listener)

        assert isinstance(event_manager.events['test'], Event)

        assert len(event_manager.events['test'].listeners[0]) == 1
コード例 #3
0
    def test_add_listener():
        event_manager = EventManager()

        test_listener = Mock()
        event_manager.add_listener('test', test_listener)

        assert isinstance(event_manager.events['test'], Event)

        assert len(event_manager.events['test'].listeners[0]) == 1
コード例 #4
0
    def test_get_registered_events():
        event_manager = EventManager()

        test_listener = Mock()
        event_manager.add_listener('test', test_listener)

        events = event_manager.get_registered_events()

        assert len(events) == 1
        assert 'test' in events
コード例 #5
0
    def test_get_registered_events():
        event_manager = EventManager()

        test_listener = Mock()
        event_manager.add_listener('test', test_listener)

        events = event_manager.get_registered_events()

        assert len(events) == 1
        assert 'test' in events
コード例 #6
0
    def test_event_pipeline_output():
        import sys
        from io import StringIO

        out = StringIO()
        sys.stdout = out

        event_manager = EventManager()

        def test_listener_1(bot=None):
            bot()

        def test_listener_2(bot=None):
            bot()

        def test_listener_3(bot=None):
            bot()

        def test_listener_4(bot=None):
            bot()

        event_manager.add_listener('test1', test_listener_1, priority=-100)
        event_manager.add_listener('test1', test_listener_2, priority=0)
        event_manager.add_listener('test1', test_listener_3, priority=0)
        event_manager.add_listener('test1', test_listener_4, priority=100)
        event_manager.add_listener('test2', test_listener_1, priority=100)
        event_manager.print_all_event_pipelines()

        assert 'Event pipeline for "test1":' in out.getvalue().strip()
        assert '-100 (test_listener_1) -> 0 (test_listener_2 -> test_listener_3) -> 100 (test_listener_4)' in out.getvalue().strip()
        assert 'Event pipeline for "test2":' in out.getvalue().strip()
        assert '100 (test_listener_1)' in out.getvalue().strip()
コード例 #7
0
    def test_add_listener_priorities():
        event_manager = EventManager()

        test_listener = Mock()
        event_manager.add_listener('test', test_listener, priority=-100)
        event_manager.add_listener('test', test_listener, priority=100)

        assert isinstance(event_manager.events['test'], Event)

        assert len(event_manager.events['test'].listeners[-100]) == 1
        assert len(event_manager.events['test'].listeners[100]) == 1
コード例 #8
0
    def test_fire_with_context():
        event_manager = EventManager()

        def test_listener(bot=None):
            bot()

        event_manager.add_listener('test', test_listener, priority=-100)

        bot = Mock()
        event_manager.fire_with_context('test', bot)

        bot.assert_called_once()
コード例 #9
0
    def test_event_pipeline_no_listeners():
        import sys
        from io import StringIO

        out = StringIO()
        sys.stdout = out
        event_manager = EventManager()

        event_manager.events['test'] = Event('test')
        event_manager.events['test'].listeners['test_listener'] = []
        event_manager.print_all_event_pipelines()

        assert 'Event pipeline for "test" is empty.' in out.getvalue().strip()
コード例 #10
0
    def test_fire_no_listeners():
        import sys
        from io import StringIO

        out = StringIO()
        sys.stdout = out

        event_manager = EventManager()

        event_manager.events['test'] = Event('test')
        event_manager.fire('test', value=None)

        assert 'WARNING: No handler has registered to handle event "test"' in out.getvalue().strip()
コード例 #11
0
    def test_remove_listener():
        event_manager = EventManager()

        test_listener = Mock()
        event_manager.add_listener('test', test_listener, priority=10)

        assert isinstance(event_manager.events['test'], Event)
        assert len(event_manager.events['test'].listeners) == 1

        event_manager.remove_listener('test', test_listener)

        assert isinstance(event_manager.events['test'], Event)
        assert len(event_manager.events['test'].listeners[10]) == 0
コード例 #12
0
    def test_event_pipeline_no_listeners():
        import sys
        from io import StringIO

        out = StringIO()
        sys.stdout = out
        event_manager = EventManager()

        event_manager.events['test'] = Event('test')
        event_manager.events['test'].listeners['test_listener'] = []
        event_manager.print_all_event_pipelines()

        assert 'Event pipeline for "test" is empty.' in out.getvalue().strip()
コード例 #13
0
    def test_fire_no_listeners():
        import sys
        from io import StringIO

        out = StringIO()
        sys.stdout = out

        event_manager = EventManager()

        event_manager.events['test'] = Event('test')
        event_manager.fire('test', value=None)

        assert 'WARNING: No handler has registered to handle event "test"' in out.getvalue(
        ).strip()
コード例 #14
0
ファイル: bot_test.py プロジェクト: pogosandbox/OpenPoGoBot
    def test_init():
        logger = Mock()
        logger.log = Mock(return_value=None)

        config_namespace = create_core_test_config()
        api_wrapper = create_mock_api_wrapper(config_namespace)
        event_manager = EventManager()
        player_service = Player(api_wrapper, event_manager, logger)
        pokemon_service = PokemonService(api_wrapper)
        mapper = Mapper(config_namespace, api_wrapper, Mock(), logger)
        path_finder = DirectPathFinder(config_namespace)
        stepper = Stepper(config_namespace, api_wrapper, path_finder, logger)
        navigator = FortNavigator(config_namespace, api_wrapper)

        bot = PokemonGoBot(config_namespace, api_wrapper, player_service,
                           pokemon_service, event_manager, mapper, stepper,
                           navigator, logger)

        assert len(bot.pokemon_list) == 151
        assert len(bot.item_list) == 30
        assert bot.position == (0, 0, 0)

        assert bot.config is config_namespace
        assert bot.api_wrapper is api_wrapper
        assert bot.player_service is player_service
        assert bot.pokemon_service is pokemon_service
        assert bot.event_manager is event_manager
        assert bot.mapper is mapper
        assert bot.stepper is stepper
        assert bot.navigator is navigator
        assert bot.logger is logger
コード例 #15
0
    def test_add_listener_priorities():
        event_manager = EventManager()

        test_listener = Mock()
        event_manager.add_listener('test', test_listener, priority=-100)
        event_manager.add_listener('test', test_listener, priority=100)

        assert isinstance(event_manager.events['test'], Event)

        assert len(event_manager.events['test'].listeners[-100]) == 1
        assert len(event_manager.events['test'].listeners[100]) == 1
コード例 #16
0
    def test_fire_cancelled():
        event_manager = EventManager()

        def test_listener():
            return {'value': 'first'}

        def test_listener_late():
            return False

        event_manager.add_listener('test', test_listener_late, priority=100)
        event_manager.add_listener('test', test_listener, priority=-100)

        return_data = event_manager.fire('test', value=None)

        assert return_data is False
コード例 #17
0
    def test_fire_with_context():
        event_manager = EventManager()

        def test_listener(bot=None):
            bot()

        event_manager.add_listener('test', test_listener, priority=-100)

        bot = Mock()
        event_manager.fire_with_context('test', bot)

        bot.assert_called_once()
コード例 #18
0
def create_mock_bot(user_config=None):
    config_namespace = create_core_test_config(user_config)

    event_manager = EventManager()
    logger = Logger(event_manager)
    api_wrapper = create_mock_api_wrapper(config_namespace)
    player_service = Player(api_wrapper, event_manager, logger)
    pokemon_service = Pokemon(api_wrapper)
    mapper = Mapper(config_namespace, api_wrapper, Mock(), logger)
    path_finder = DirectPathFinder(config_namespace)
    stepper = Stepper(config_namespace, api_wrapper, path_finder, logger)
    navigator = FortNavigator(config_namespace, api_wrapper)

    bot = PokemonGoBot(config_namespace, api_wrapper, player_service,
                       pokemon_service, event_manager, mapper, stepper,
                       navigator, logger)

    return bot
コード例 #19
0
    def test_remove_listener():
        event_manager = EventManager()

        test_listener = Mock()
        event_manager.add_listener('test', test_listener, priority=10)

        assert isinstance(event_manager.events['test'], Event)
        assert len(event_manager.events['test'].listeners) == 1

        event_manager.remove_listener('test', test_listener)

        assert isinstance(event_manager.events['test'], Event)
        assert len(event_manager.events['test'].listeners[10]) == 0
コード例 #20
0
    def test_fire():
        event_manager = EventManager()

        # pylint: disable=unused-argument
        def test_listener(value=None):
            return {'value': 'first'}

        # pylint: disable=unused-argument
        def test_listener_late(value=None):
            return {'value': 'second'}

        event_manager.add_listener('test', test_listener_late, priority=100)
        event_manager.add_listener('test', test_listener, priority=-100)

        return_data = event_manager.fire('test', value=None)

        assert return_data['value'] == 'second'
コード例 #21
0
def create_test_kernel(user_config=None):
    # type: (Dict) -> ServiceContainer

    kernel = Kernel()

    config = create_core_test_config(user_config)

    kernel.container.register_singleton('config', config)
    kernel.container.register_singleton('pgoapi', PGoApiMock())
    kernel.container.register_singleton(
        'plugin_manager',
        PluginManager(
            os.path.dirname(os.path.realpath(__file__)) + '/plugins'))
    kernel.container.register_singleton('event_manager', EventManager())

    kernel.container.set_parameter('path_finder',
                                   config['movement']['path_finder'])
    kernel.container.set_parameter('navigator',
                                   config['movement']['path_finder'])

    return kernel
コード例 #22
0
    def test_fire_cancelled():
        event_manager = EventManager()

        def test_listener():
            return {
                'value': 'first'
            }

        def test_listener_late():
            return False

        event_manager.add_listener('test', test_listener_late, priority=100)
        event_manager.add_listener('test', test_listener, priority=-100)

        return_data = event_manager.fire('test', value=None)

        assert return_data is False
コード例 #23
0
    def test_fire():
        event_manager = EventManager()

        # pylint: disable=unused-argument
        def test_listener(value=None):
            return {
                'value': 'first'
            }

        # pylint: disable=unused-argument
        def test_listener_late(value=None):
            return {
                'value': 'second'
            }

        event_manager.add_listener('test', test_listener_late, priority=100)
        event_manager.add_listener('test', test_listener, priority=-100)

        return_data = event_manager.fire('test', value=None)

        assert return_data['value'] == 'second'
コード例 #24
0
ファイル: app.py プロジェクト: avallete/PokemonGo-Bot
import logging

import socketio
from flask import Flask

from pokemongo_bot.event_handlers import LoggingHandler
from pokemongo_bot.event_manager import EventManager

sio = socketio.Server(async_mode='eventlet', logging=logging.NullHandler)
app = Flask(__name__)

event_manager = EventManager()
event_manager.add_handler(LoggingHandler())
event_manager.register_event(
    "websocket_client_connected",
)

# client asks for data
@sio.on('remote:send_request')
def remote_control(sid, command):
    sio.emit('bot:process_request', data=command)

# sending bot response to client
@sio.on('bot:send_reply')
def request_reply(sid, response):
    sio.emit(response['command'], response['response'])

@sio.on('bot:broadcast')
def bot_broadcast(sid, env):
    sio.emit(env['event'], data=env['data'])
コード例 #25
0
 def __init__(self):
     self.config = MagicMock(websocket_server_url=False, show_events=False)
     self.api = FakeApi()
     self.event_manager = EventManager(None)
     self._setup_event_system(None)