Пример #1
0
def test_Group_from_yaml_complains_if_nothing_useful_specified():
    with pytest.raises(TypeError) as excinfo:
        Group.from_yaml('G1', [], [])
    msg, = excinfo.value.args
    assert msg == (
        'Group G1 must define at least one of `metrics` or '
        '`metric_expressions`'
    )
Пример #2
0
def test_Group_from_yaml():
    # Simulate a call we would get from yaml
    group = Group.from_yaml(
        'BazGroup',
        metrics=['Foo', 'Bar'],
        metric_expressions=['^.*Baz.*$'],
    )

    assert (group == Group('BazGroup', {'Foo', 'Bar'},
                           (re.compile('^.*Baz.*$'), )))
Пример #3
0
def test_get_groups_from_yaml_smoke():
    # Grapped from sample run
    groups_yaml = [
        {
            'Cheetah': {
                'metrics': [],
                'metric_expressions': ['^.*Cheetah.*$'],
            },
        },
        {
            'Python': {
                'metrics': [],
                'metric_expressions': ['^.*Python.*$'],
            },
        },
        {
            'CurseWords': {
                'metrics': [],
                'metric_expressions': ['^TotalCurseWords.*$'],
            },
        },
        {
            'LinesOfCode': {
                'metrics': [],
                'metric_expressions': ['^TotalLinesOfCode.*$'],
            },
        },
    ]

    groups = _get_groups_from_yaml(groups_yaml)
    assert (
        groups ==
        (
            # Regexes tested below
            Group('Cheetah', set(), (mock.ANY,)),
            Group('Python', set(), (mock.ANY,)),
            Group('CurseWords', set(), (mock.ANY,)),
            Group('LinesOfCode', set(), (mock.ANY,)),
        )
    )

    regexes = [group.metric_expressions[0].pattern for group in groups]
    assert (
        regexes ==
        [
            '^.*Cheetah.*$',
            '^.*Python.*$',
            '^TotalCurseWords.*$',
            '^TotalLinesOfCode.*$',
        ]
    )
def test_Group_from_yaml():
    # Simulate a call we would get from yaml
    group = Group.from_yaml(
        'BazGroup',
        metrics=['Foo', 'Bar'],
        metric_expressions=['^.*Baz.*$'],
    )

    assert (
        group ==
        Group('BazGroup', set(['Foo', 'Bar']), (re.compile('^.*Baz.*$'),))
    )
def test_Group_contains_by_regex():
    group = Group('G', set(['Foo', 'Bar']), (re.compile('^.*Baz.*$'),))
    assert group.contains('FooBaz')
def test_Group_contains_does_not_contain():
    group = Group('G', set(['Foo', 'Bar']), (re.compile('^.*Baz.*$'),))
    assert not group.contains('buz')
def test_Group_from_yaml_complains_if_nothing_useful_specified():
    with pytest.raises(staticconf.errors.ValidationError):
        Group.from_yaml('G1', [], [])
Пример #8
0
def test_get_groups_from_yaml_no_metrics_provided():
    groups_yaml = [{'G1': {'metric_expressions': ['^Foo.*$']}}]
    groups = _get_groups_from_yaml(groups_yaml)
    # Regex tested below
    assert groups == (Group('G1', frozenset(), (mock.ANY, )), )
    assert groups[0].metric_expressions[0].pattern == '^Foo.*$'
Пример #9
0
def test_Group_contains_by_regex():
    group = Group('G', frozenset(('Foo', 'Bar')), (re.compile('^.*Baz.*$'), ))
    assert group.contains('FooBaz')
Пример #10
0
def test_Group_contains_does_not_contain():
    group = Group('G', frozenset(('Foo', 'Bar')), (re.compile('^.*Baz.*$'), ))
    assert not group.contains('buz')
Пример #11
0
def test_get_groups_from_yaml_no_metric_expressions_provided():
    groups_yaml = [{'G1': {'metrics': ['Foo']}}]
    groups = _get_groups_from_yaml(groups_yaml)
    assert groups == (Group('G1', frozenset(('Foo', )), ()), )
Пример #12
0
def test_Group_contains_contains_by_name():
    group = Group('G', {'Foo', 'Bar'}, (re.compile('^.*Baz.*$'), ))
    assert group.contains('Foo')
Пример #13
0
def test_Group_from_yaml_complains_if_nothing_useful_specified():
    with pytest.raises(staticconf.errors.ValidationError):
        Group.from_yaml('G1', [], [])