Blame src/cli-ng/tests/clitests/fake_problems.py

Packit 8ea169
import problem
Packit 8ea169
import datetime
Packit 8ea169
Packit 8ea169
# contains two problems with the same hash
Packit 8ea169
# one problem of users app
Packit 8ea169
# one unknown problem
Packit 8ea169
Packit 8ea169
_rt = '''uReport: BTHASH=3505a6db8a6bd51a3d690f1553b309a0d7eda948
Packit 8ea169
ABRT Server: URL=https://retrace.fedoraproject.org/faf/reports/bthash/3505a6db8a6bd51a3d690f1553b309a0d7eda948
Packit 8ea169
Bugzilla: URL=https://bugzilla.redhat.com/show_bug.cgi?id=1223349'''
Packit 8ea169
Packit 8ea169
Packit 8ea169
_data = [
Packit 8ea169
    {
Packit 8ea169
        'type': problem.CCPP,
Packit 8ea169
        'reason': 'pavucontrol killed by SIGSEGV',
Packit 8ea169
        '_id': 'bc60a5cbddb4e3667511e718ceecac16133acc97',
Packit 8ea169
        'path': '/var/tmp/abrt/ccpp-2015-05-16-14:41:47-7729',
Packit 8ea169
        'count': 15,
Packit 8ea169
        'time': datetime.datetime(2015, 5, 16, 14, 41, 47),
Packit 8ea169
        'component': 'pavucontrol',
Packit 8ea169
        'reported_to': _rt,
Packit 8ea169
    },
Packit 8ea169
    {
Packit 8ea169
        'type': problem.CCPP,
Packit 8ea169
        'reason': 'polkit killed by SIGSEGV',
Packit 8ea169
        '_id': 'bc60a5cbddb4e3667511e718ceecac16133acc97',
Packit 8ea169
        'path': '/var/tmp/abrt/ccpp-2015-06-16-14:41:47-7729',
Packit 8ea169
        'count': 1,
Packit 8ea169
        'time': datetime.datetime(2015, 6, 16, 14, 41, 47),
Packit 8ea169
        'component': 'polkitd',
Packit 8ea169
    },
Packit 8ea169
    {
Packit 8ea169
        'type': problem.CCPP,
Packit 8ea169
        'reason': 'pavucontrol killed by SIGSEGV',
Packit 8ea169
        '_id': 'acbea5cbddb4e3667511e718ceecac16133acc97',
Packit 8ea169
        'path': '/var/tmp/abrt/ccpp-2015-06-16-14:41:47-7729',
Packit 8ea169
        'count': 3,
Packit 8ea169
        'time': datetime.datetime(2013, 6, 16, 14, 41, 47),
Packit 8ea169
        'component': 'pavucontrol',
Packit 8ea169
    },
Packit 8ea169
    {
Packit 8ea169
        'type': problem.CCPP,
Packit 8ea169
        'reason': 'user_app killed by SIGSEGV',
Packit 8ea169
        '_id': 'ffe635cbdd54e3667511e718ceecac16133acc97',
Packit 8ea169
        'path': '/var/tmp/abrt/ccpp-2015-03-16-14:41:47-7729',
Packit 8ea169
        'count': 1,
Packit 8ea169
        'time': datetime.datetime(2015, 6, 17, 14, 41, 47),
Packit 8ea169
        'executable': '/home/user/bin/user_app',
Packit 8ea169
        'uid': 1234,
Packit 8ea169
    },
Packit 8ea169
    {
Packit 8ea169
        'type': 'unknown_problem',
Packit 8ea169
        'reason': 'something wrong happened',
Packit 8ea169
        '_id': 'ccacca5cbdd54e3667511e718ceecac16133acc97',
Packit 8ea169
        'path': '/var/tmp/abrt/ccpp-2014-03-16-14:41:47-7729',
Packit 8ea169
        'count': 1,
Packit 8ea169
        'time': datetime.datetime(2014, 6, 16, 14, 41, 47),
Packit 8ea169
        'not-reportable': 'Not reportable reason',
Packit 8ea169
    },
Packit 8ea169
]
Packit 8ea169
Packit 8ea169
Packit 8ea169
class FakeProxy():
Packit 8ea169
    ''' To be sure no dbus api calls are made during tests '''
Packit 8ea169
    def connect():
Packit 8ea169
        pass
Packit 8ea169
Packit 8ea169
    def get_item(*args, **kwargs):
Packit 8ea169
        return None
Packit 8ea169
Packit 8ea169
Packit 8ea169
def get_fake_problems(*args, **kwargs):
Packit 8ea169
    res = []
Packit 8ea169
    for pdata in _data:
Packit 8ea169
        p = problem.Problem(pdata['type'], pdata['reason'])
Packit 8ea169
Packit 8ea169
        for field in set(pdata.keys()) - set(['type', 'reason']):
Packit 8ea169
            if field == 'path':  # path is immutable
Packit 8ea169
                continue
Packit 8ea169
Packit 8ea169
            setattr(p, field, pdata[field])
Packit 8ea169
Packit 8ea169
        setattr(p, '_persisted', True)
Packit 8ea169
        setattr(p, '_probdir',  pdata['path'])
Packit 8ea169
        setattr(p, '_proxy',  FakeProxy())
Packit 8ea169
Packit 8ea169
        res.append(p)
Packit 8ea169
Packit 8ea169
    return res