Ejemplo n.º 1
0
def test_format_template(request, mocker, ymlparsersExtraFixture):
    logger.info(f'{request._pyfuncitem.name}()')

    uconvert_mock = mocker.patch(
        'alexber.utils._ymlparsers_extra._convert_template_to_string_format',
        side_effect=_convert_template_to_string_format,
        autospec=True,
        spec_set=True)

    exp_value = 'Hello, John!'
    template = 'Hello, {{name}}!'
    value = format_template(template, name='John')
    pytest.assume(exp_value == value)
    pytest.assume(uconvert_mock.call_count > 0)
Ejemplo n.º 2
0
def test_ymlparsers_load_multiple_with_substition(request, mocker,
                                                  ymlparsersSetup,
                                                  ymlparsersCleanup,
                                                  exp_config_d):
    logger.info(f'{request._pyfuncitem.name}()')

    pck = '.'.join(['tests_data', __package__, 'ymlparsers'])

    exp_d = copy.deepcopy(exp_config_d)
    exp_d['general']['log']['formatters']['detail'] = {'format': \
                                                           '%(asctime)-14s %(levelname)s [%(name)s.%(funcName)s] %(message)s',
                                                       'datefmt': \
                                                           '%Y-%m-%d %H:%M:%S'}
    exp_d['general']['log']['root']['level'] = 'INFO'
    exp_d['app']['inner_host_name'] = 'yahoo.com'
    exp_d['app']['white_list'] = ['gamma', 'alpha', 'betha']
    exp_d['app']['alt_white_list'] = ['c', 'b', 'a']

    with path(pck, 'config.yml') as full_path:
        with path(pck, 'config-dev.yml') as full_dev_path:
            default_d = ymlparsers.load([str(full_path), str(full_dev_path)])

    app_d = default_d['app']
    exp_app_d = exp_d.get('app', None)

    inner_host_name = app_d.get('inner_host_name', None)
    exp_host_name = exp_app_d.get('inner_host_name', None)
    pytest.assume(exp_host_name == inner_host_name)

    exp_cli_template = exp_app_d.get('cli_template', None)
    exp_cli_template = format_template(exp_cli_template,
                                       app_inner_host_name=exp_host_name)
    exp_app_d['cli_template'] = exp_cli_template

    cli_template = app_d.get('cli_template')
    pytest.assume('inner_host_name' not in cli_template)

    cli_template = app_d['cli_template']
    pytest.assume('inner_host_name' not in cli_template)

    pytest.assume(exp_d == default_d)
Ejemplo n.º 3
0
def test_ymlparsers_load_single_with_substition(request, mocker,
                                                ymlparsersSetup,
                                                ymlparsersCleanup,
                                                exp_config_d):
    logger.info(f'{request._pyfuncitem.name}()')

    pck = '.'.join(['tests_data', __package__, 'ymlparsers'])

    mock_lock = create_mock_lock(mocker)
    mocker.patch.object(HiYaPyCo, 'jinja2Lock', new=mock_lock, spec_set=True)

    with path(pck, 'config.yml') as full_path:
        default_d = ymlparsers.load([str(full_path)])

    pytest.assume(mock_lock.acquire.call_count > 1)
    pytest.assume(mock_lock.release.call_count == mock_lock.acquire.call_count)

    app_d = default_d['app']
    exp_d = copy.deepcopy(exp_config_d)
    exp_app_d = exp_d.get('app', None)

    inner_host_name = app_d.get('inner_host_name', None)
    exp_host_name = exp_app_d.get('inner_host_name', None)
    pytest.assume(exp_host_name == inner_host_name)

    exp_cli_template = exp_app_d.get('cli_template', None)
    exp_cli_template = format_template(exp_cli_template,
                                       app_inner_host_name=exp_host_name)
    exp_app_d['cli_template'] = exp_cli_template

    cli_template = app_d.get('cli_template')
    pytest.assume('inner_host_name' not in cli_template)

    cli_template = app_d['cli_template']
    pytest.assume('inner_host_name' not in cli_template)
    pytest.assume(exp_d == default_d)

    white_list = app_d.get('white_list', None)
    exp_white_list = exp_app_d.get('white_list', None)
    pytest.assume(exp_white_list == white_list)
Ejemplo n.º 4
0
def _run_with_substition(content, exp_config_d, stop):
    for i in range(stop):
        default_d = ymlparsers.load([str(content)])

        app_d = default_d['app']
        exp_app_d = exp_config_d.get('app', None)

        inner_host_name = app_d.get('inner_host_name', None)
        exp_host_name = exp_app_d.get('inner_host_name', None)
        pytest.assume(exp_host_name == inner_host_name)

        exp_cli_template = exp_app_d.get('cli_template', None)
        exp_cli_template = format_template(exp_cli_template,
                                           app_inner_host_name=exp_host_name)

        exp_app_d['cli_template'] = exp_cli_template

        cli_template = app_d.get('cli_template')
        pytest.assume('inner_host_name' not in cli_template)

        cli_template = app_d['cli_template']
        pytest.assume('inner_host_name' not in cli_template)
        pytest.assume(exp_config_d == default_d)
Ejemplo n.º 5
0
def test_ymlparsers_load_it(request, mocker, ymlparsersSetup,
                            ymlparsersCleanup, exp_config_d):
    logger.info(f'{request._pyfuncitem.name}()')
    pck = '.'.join(['tests_data', __package__, 'ymlparsers'])

    with path(pck, 'config.yml') as full_path:
        with open(full_path, 'r') as f:
            content = f.read()

    stop = 10

    exp_d = copy.deepcopy(exp_config_d)
    exp_app_d = dict(exp_d.get('app', None))
    if exp_app_d is not None:
        exp_d['app'] = exp_app_d

    exp_host_name = exp_app_d.get('inner_host_name', None)
    exp_cli_template = exp_app_d.get('cli_template', None)
    exp_cli_template = format_template(exp_cli_template,
                                       app_inner_host_name=exp_host_name)
    exp_app_d['cli_template'] = exp_cli_template

    th1 = threading.Thread(name="run_with_substition",
                           target=_run_with_substition,
                           args=(content, exp_d, stop))

    th2 = threading.Thread(name="run_without_substition",
                           target=_run_without_substition,
                           args=(str(content), copy.deepcopy(exp_config_d),
                                 stop))

    th1.start()
    time.sleep(2)
    th2.start()
    th1.join()
    th2.join()