Beispiel #1
0
def test_process_log(mocker, mock_config, dry_run):
    test_log_def = {'garbage': [_Pattern('crap')],
                    'ignore': {_Pattern('foo'): [_Pattern('boring')],
                               _Pattern('bar'): [_Pattern('zzz')]},
                    'regexps': ['test'],
                    'files': ['foo']}
    config = {'verbosity': 0,
              'debug': False,
              'dry_run': dry_run,
              'regexps': {'test': re.compile('^(?P<source>[^/]+)/(?P<message>.+)$')},
              'logs': {'test': test_log_def}}
    dummy_logs = textwrap.dedent('''
        crap
        foo/zzz
        foo/123
        foo/boring
        bar/boring
        bar/456
        bar/zzz
        wtf
    ''')
    mock_config(config)
    mocker.patch('logstapo.logs.debug_echo')
    mocker.patch('logstapo.logs.verbose_echo')
    mocker.patch('logstapo.logs.warning_echo')
    logtail = mocker.patch('logstapo.logs.logtail', return_value=dummy_logs.strip().split('\n'))
    other, invalid = process_log('test')
    expected = [(x, dict(zip(('source', 'message'), x.split('/'))))
                for x in ['foo/zzz', 'foo/123', 'bar/boring', 'bar/456']]
    assert other == expected
    assert invalid == ['wtf']
    logtail.assert_called_once_with('foo', dry_run=dry_run)
Beispiel #2
0
def test_process_log(mocker, mock_config, dry_run):
    test_log_def = {
        'garbage': [_Pattern('crap')],
        'ignore': {
            _Pattern('foo'): [_Pattern('boring')],
            _Pattern('bar'): [_Pattern('zzz')]
        },
        'regexps': ['test'],
        'files': ['foo']
    }
    config = {
        'verbosity': 0,
        'debug': False,
        'dry_run': dry_run,
        'regexps': {
            'test': re.compile('^(?P<source>[^/]+)/(?P<message>.+)$')
        },
        'logs': {
            'test': test_log_def
        }
    }
    dummy_logs = textwrap.dedent('''
        crap
        foo/zzz
        foo/123
        foo/boring
        bar/boring
        bar/456
        bar/zzz
        wtf
    ''')
    mock_config(config)
    mocker.patch('logstapo.logs.debug_echo')
    mocker.patch('logstapo.logs.verbose_echo')
    mocker.patch('logstapo.logs.warning_echo')
    logtail = mocker.patch('logstapo.logs.logtail',
                           return_value=dummy_logs.strip().split('\n'))
    other, invalid = process_log('test')
    expected = [(x, dict(zip(('source', 'message'), x.split('/'))))
                for x in ['foo/zzz', 'foo/123', 'bar/boring', 'bar/456']]
    assert other == expected
    assert invalid == ['wtf']
    logtail.assert_called_once_with('foo', dry_run=dry_run)
Beispiel #3
0
def test_pattern_test(pattern, string, expected):
    patternobj = config._Pattern(pattern)
    assert patternobj.test(string) == expected
Beispiel #4
0
def test_pattern_none():
    patternobj = config._Pattern()
    assert not patternobj.negate
    assert patternobj.always_match
Beispiel #5
0
def test_pattern_wildcard(negate):
    prefix = '^' if negate else ''
    patternobj = config._Pattern(prefix + '*')
    assert patternobj.negate == negate
    assert patternobj.always_match
Beispiel #6
0
def test_pattern(pattern, regex, negate):
    prefix = '^' if negate else ''
    patternobj = config._Pattern(prefix + pattern)
    assert patternobj.negate == negate
    assert patternobj.regex.pattern == regex
    assert not patternobj.always_match
Beispiel #7
0
def test_pattern_test(pattern, string, expected):
    patternobj = config._Pattern(pattern)
    assert patternobj.test(string) == expected
Beispiel #8
0
def test_pattern_none():
    patternobj = config._Pattern()
    assert not patternobj.negate
    assert patternobj.always_match
Beispiel #9
0
def test_pattern_wildcard(negate):
    prefix = '^' if negate else ''
    patternobj = config._Pattern(prefix + '*')
    assert patternobj.negate == negate
    assert patternobj.always_match
Beispiel #10
0
def test_pattern(pattern, regex, negate):
    prefix = '^' if negate else ''
    patternobj = config._Pattern(prefix + pattern)
    assert patternobj.negate == negate
    assert patternobj.regex.pattern == regex
    assert not patternobj.always_match