Пример #1
0
def equipments_provider_manager_env_test():
    """
    Test that equipments providers are created from env when conditions are met
    """
    manager = EquipmentProviderManager(
        equipment_providers_configuration=[{
            'key': 'SytralRT',
            'class': 'Sytral.class',
            'args': 'Sytral.args'
        }])
    manager._init_class = MagicMock(return_value="Provider")

    # Provider name from instance doesn't match config provider
    # No provider added in providers list
    manager.init_providers(['divia'])
    assert not manager._equipment_providers
    assert not manager._equipment_providers_legacy

    # Provider name from instance matches config provider
    # Sytral provider added in providers list
    manager.init_providers(['SytralRT'])
    assert not manager._equipment_providers
    assert len(manager._equipment_providers_legacy) == 1
    assert manager._equipment_providers_legacy.keys()[0] == 'SytralRT'
    assert manager._get_providers() == {'SytralRT': 'Provider'}

    # Provider already created
    # No new provider added in providers list
    manager.init_providers(['SytralRT'])
    assert not manager._equipment_providers
    assert len(manager._equipment_providers_legacy) == 1
Пример #2
0
def equipments_providers(app):
    from jormungandr.equipments.equipment_provider_manager import EquipmentProviderManager

    if app.config['DISABLE_DATABASE']:
        return EquipmentProviderManager(
            app.config[str('EQUIPMENT_DETAILS_PROVIDERS')])
    else:
        from navitiacommon import models

        return EquipmentProviderManager(
            app.config[str('EQUIPMENT_DETAILS_PROVIDERS')],
            models.EquipmentsProvider.all)
Пример #3
0
def wrong_equipments_provider_test():
    """
    Test that equipments providers with wrong parameters aren't created
    """

    # Provider has a class wrongly formatted
    manager = EquipmentProviderManager([], providers_getter_wrong_class, -1)
    manager.init_providers(['sytral'])
    assert not manager._equipment_providers_legacy
    assert not manager._equipment_providers

    # No providers available in db
    manager._providers_getter = []
    manager.update_config()
    assert not manager._equipment_providers_legacy
    assert not manager._equipment_providers
Пример #4
0
def equipments_provider_manager_env_vs_db_test():
    """
    Test that equipments providers from db have priority over providers from env
    """
    manager = EquipmentProviderManager(
        equipment_providers_configuration=[{'key': 'sytral', 'class': 'Sytral.class', 'args': 'Sytral.args'}]
    )
    manager._init_class = MagicMock(return_value="Provider")

    # Provider 'sytral' will be created in legacy list
    manager.init_providers(['sytral'])
    assert not manager._equipment_providers
    assert len(manager._equipment_providers_legacy) == 1
    assert manager._equipment_providers_legacy.keys()[0] == 'sytral'

    # Provider 'sytral' will be created in providers list and deleted from legacy
    manager._providers_getter = providers_getter_ok
    manager.update_config()
    assert not manager._equipment_providers_legacy
    assert 'sytral' in manager._equipment_providers
Пример #5
0
def equipments_provider_manager_db_test():
    """
    Test that equipments providers are created from db when conditions are met
    """
    manager = EquipmentProviderManager([], providers_getter_ok, -1)

    # 2 providers defined in db are associated to the coverage
    # -> 2 providers created
    manager.init_providers(['sytral'])
    manager.update_config()
    assert not manager._equipment_providers_legacy
    assert len(manager._equipment_providers) == 2
    assert 'sytral' in manager._equipment_providers
    assert manager._equipment_providers['sytral'].url == 'sytral.url'
    assert 'sytral2' in manager._equipment_providers
    assert manager._equipment_providers['sytral2'].url == 'sytral2.url'

    manager_update = manager._last_update
    assert 'sytral' in manager._equipment_providers_last_update
    sytral_update = manager._equipment_providers_last_update['sytral']

    # Provider already existing is updated
    manager._providers_getter = provider_getter_update
    manager.update_config()
    assert manager._last_update > manager_update
    assert not manager._equipment_providers_legacy
    assert len(manager._equipment_providers) == 2
    assert 'sytral' in manager._equipment_providers
    assert manager._equipment_providers['sytral'].url == 'sytral.url.UPDATE'
    assert 'sytral' in manager._equipment_providers_last_update
    assert manager._equipment_providers_last_update['sytral'] > sytral_update

    # Long update interval so provider shouldn't be updated
    manager = EquipmentProviderManager([], providers_getter_ok, 600)
    manager.init_providers(['sytral'])
    manager.update_config()
    assert not manager._equipment_providers_legacy
    assert len(manager._equipment_providers) == 2
    assert 'sytral' in manager._equipment_providers
    assert manager._equipment_providers['sytral'].url == 'sytral.url'
    manager_update = manager._last_update

    manager._providers_getter = provider_getter_update
    manager.update_config()
    assert manager._last_update == manager_update
    assert not manager._equipment_providers_legacy
    assert len(manager._equipment_providers) == 2
    assert 'sytral' in manager._equipment_providers
    assert manager._equipment_providers['sytral'].url == 'sytral.url'