Example #1
0
def test_stats_search_number_of_tickets_query_ok():
    rt_object = RTApiMock()
    rt_object.set_return([
        u'812344: create rt dashboard',
    ])
    response = stats_search_number_of_tickets(rt_object, 'My search')
    assert response == 1
Example #2
0
def test_search_tickets_With_result():
    rt_object = RTApiMock()
    rt_object.set_return([
        u'id: ticket/887677',
        u'owner: [email protected]',
        u'subject: create rt dashboard',
        u'status: open',
        u'priority: 26',
        u'cf.{servico}: csc-gsiic',
        u'cf.{is - informatica e sistemas}: dir-inbox',
        u'lastupdated: wed jul 15 21:16:50 2015',
    ])
    result = search_tickets(rt_object, '*****@*****.**')
    assert result == {
        'tickets': {
            '07/15': [{
                u'status': u'open',
                u'priority': u'26',
                u'lastupdated': u'wed jul 15 21:16:50 2015',
                'auxiliary_date': '07/15',
                u'owner': u'*****@*****.**',
                u'cf.{is - informatica e sistemas}': u'dir-inbox',
                'id': u'887677',
                u'cf.{servico}': u'csc-gsiic',
                u'subject': u'create rt dashboard'
            }]
        },
        'no_result': False,
        'number_tickets': 1,
        'email_limit': {
            'new': 7,
            'open': 1,
            'rejected': 7
        }
    }
Example #3
0
def test_number_of_created_tickets_on_a_date_query_ok():
    rt_object = RTApiMock()
    rt_object.set_return([
        u'812344: create rt dashboard',
    ])
    response = number_of_created_tickets_on_a_date(rt_object, 'My search')
    assert response == 1
Example #4
0
def test_get_list_of_tickets_detail_True():
    rt_object = RTApiMock()
    rt_object.set_return(
        [
                u'rt/4.0.6 200 ok', u'',
                u'id: ticket/887677',
                u'owner: [email protected]',
                u'subject: create rt dashboard',
                u'status: open',
                u'priority: 26',
                u'cf.{servico}: csc-gsiic',
                u'cf.{is - informatica e sistemas}: dir-inbox',
            ]
    )
    result = get_list_of_tickets(rt_object, 'Owner = "*****@*****.**" and Status == "open"', True)
    assert rt_object.uri == '/search/ticket'
    assert rt_object.data == {
        'query': 'Owner = "*****@*****.**" and Status == "open"',
        'format': 'l'
    }
    assert result == [
        {
            u'status': u'open',
            u'priority': u'26',
            u'owner': u'*****@*****.**',
            u'cf.{is - informatica e sistemas}': u'dir-inbox',
            u'id': u'887677',
            u'cf.{servico}': u'csc-gsiic',
            u'subject': u'create rt dashboard'
        }
    ]
Example #5
0
def test_get_number_of_tickets_query_not_ok():
    rt_object = RTApiMock()
    rt_object.set_return([
        u'rt/4.0.6 200 ok',
        u'',
        u'887677: create rt dashboard',
    ])
    result = get_number_of_tickets(rt_object, '')
    assert result == 0
Example #6
0
def test_get_number_of_tickets_query_not_ok_raise_exception():
    rt_object = RTApiMock()
    rt_object.set_return([
        u'rt/4.0.6 200 ok',
        u'',
        u'invalid query: just testing...',
    ])
    result = get_number_of_tickets(rt_object, 'Something')
    assert result == 0
Example #7
0
def test_get_urgent_tickets():
    rt_object = RTApiMock()
    rt_object.set_return([
        u'rt/4.0.6 200 ok',
        u'',
        u'81818: This is a test...',
    ])

    result = get_urgent_tickets(rt_object)
    assert result == [{'id': '81818', 'subject': 'This is a test...'}]
Example #8
0
def test_ticket_actions_decrease_priority():
    rt_object = RTApiMock()
    rt_object.set_return([
        u'id: ticket/887677',
        u'owner: [email protected]',
        u'subject: create rt dashboard',
        u'status: open',
        u'priority: 26',
        u'cf.{servico}: csc-gsiic',
        u'cf.{is - informatica e sistemas}: dir-inbox',
    ])
    ticket_actions(rt_object, '887677', 'decrease_priority', '*****@*****.**',
                   '*****@*****.**')
    assert rt_object.uri == 'ticket/887677/edit'
    assert rt_object.data == {'content': 'priority: 25\n'}
Example #9
0
def test_ticket_actions_forward_new():
    rt_object = RTApiMock()
    rt_object.set_return([
        u'id: ticket/887677',
        u'owner: [email protected]',
        u'subject: create rt dashboard',
        u'status: new',
        u'priority: 26',
        u'cf.{servico}: csc-gsiic',
        u'cf.{is - informatica e sistemas}: dir-inbox',
        u'starts: ' + str(ctime(time())),
        u'timeworked: 10 minutes',
    ])
    ticket_actions(rt_object, '887677', 'forward', '*****@*****.**', '*****@*****.**')
    assert rt_object.uri == 'ticket/887677/edit'
    assert 'status: open\nstarts: ' in rt_object.data['content']
Example #10
0
def test_get_ticket_links():
    rt_object = RTApiMock()
    rt_object.set_return(
        [
            u'rt/4.0.6 200 ok',
            u'',
            u'id: ticket/885775/links',
            u'',
            u'members: fsck.com-rt://uc.pt/ticket/887677,',
            u'fsck.com-rt://uc.pt/ticket/897183,',
            u'fsck.com-rt://uc.pt/ticket/899145',
            u'',
            u''
        ]
    )
    result = get_ticket_links(rt_object, 885775)
    assert result == [[u'members', u'887677'], [u'members', u'897183'], [u'members', u'899145']]
Example #11
0
def test_ticket_actions_unknown_option():
    rt_object = RTApiMock()
    rt_object.set_return([
        u'id: ticket/887677',
        u'owner: [email protected]',
        u'subject: create rt dashboard',
        u'status: open',
        u'priority: 26',
        u'cf.{servico}: csc-gsiic',
        u'cf.{is - informatica e sistemas}: dir-inbox',
    ])
    result = ticket_actions(rt_object, '887677', 'not_known', '*****@*****.**',
                            '*****@*****.**')
    assert rt_object.data == {'query': 'id = "887677"', 'format': 'l'}
    assert rt_object.uri == '/search/ticket'
    assert result == {
        'action_result': 'Still working on it... sorry for the inconvenience!'
    }
Example #12
0
def test_user_tickets_details_dir_inbox():
    rt_object = RTApiMock()
    rt_object.set_return([
        u'id: ticket/887677',
        u'owner: nobody',
        u'subject: create rt dashboard',
        u'status: open',
        u'priority: 26',
        u'cf.{servico}: csc-gsiic',
        u'cf.{is - informatica e sistemas}: dir-inbox',
    ])
    result = user_tickets_details(rt_object, 'dir-inbox')
    assert rt_object.data == {
        'query':
        'Queue = "general" AND "CF.{IS - Informatica e Sistemas}" = "DIR-INBOX" '
        'AND Owner = "Nobody"  AND Status != "resolved" AND Status != "deleted" ',
        'format':
        'l'
    }
    assert result == {
        'tickets': {
            u'26': [{
                u'status': u'open',
                u'priority': u'26',
                'kanban_actions': {
                    'increase_priority': True,
                    'decrease_priority': True,
                    'back': True,
                    'interrupted': False,
                    'stalled': False,
                    'forward': False
                },
                u'owner': u'nobody',
                u'cf.{is - informatica e sistemas}': u'dir-inbox',
                u'id': u'887677',
                u'cf.{servico}': u'csc-gsiic',
                u'subject': u'create rt dashboard'
            }]
        },
        'email_limit': {},
        'number_tickets_per_status': {
            'dir-inbox': 1
        }
    }
Example #13
0
def test_private__generate_summary_file():
    rt_object = RTApiMock()
    rt_object.set_return([
        u'rt/4.0.6 200 ok',
        u'',
        u'id: ticket/887677',
        u'owner: [email protected]',
        u'status: open',
        u'cf.{is - informatica e sistemas}: dir-inbox',
        u'',
        u'rt/4.0.6 200 ok',
        u'',
        u'id: ticket/887677',
        u'owner: [email protected]',
        u'status: new',
        u'cf.{is - informatica e sistemas}: dir-inbox',
        u'',
    ])
    list_emails = set(['*****@*****.**', '*****@*****.**'])
    list_status = ['new', 'open']

    summary = __generate_summary_file(rt_object, list_emails, list_status)
    assert summary == {
        'unknown': {
            'new': 0,
            'open': 0,
        },
        u'*****@*****.**': {
            'new': 3,
            'open': 0,
        },
        'dir-inbox': {
            'new': 0,
            'open': 0,
        },
        u'*****@*****.**': {
            'new': 0,
            'open': 3,
        },
        'dir': {
            'new': 0,
            'open': 0
        }
    }
Example #14
0
def test_user_closed_tickets_known_email():
    rt_object = RTApiMock()
    rt_object.set_return([
        u'id: ticket/887677',
        u'owner: [email protected]',
        u'subject: create rt dashboard',
        u'status: open',
        u'priority: 26',
        u'cf.{servico}: csc-gsiic',
        u'cf.{is - informatica e sistemas}: dir-inbox',
        u'lastupdated: wed jul 15 21:16:50 2015',
    ])
    result = user_closed_tickets(rt_object, '*****@*****.**')
    assert result == {
        'tickets': {
            '07/15': [{
                u'status': u'open',
                u'priority': u'26',
                'kanban_actions': {
                    'increase_priority': True,
                    'decrease_priority': True,
                    'back': True,
                    'interrupted': True,
                    'stalled': True,
                    'forward': True
                },
                u'lastupdated': u'wed jul 15 21:16:50 2015',
                'auxiliary_date': '07/15',
                u'owner': u'*****@*****.**',
                u'cf.{is - informatica e sistemas}': u'dir-inbox',
                'id': u'887677',
                u'cf.{servico}': u'csc-gsiic',
                u'subject': u'create rt dashboard'
            }]
        },
        'email_limit': {
            'new': 7,
            'open': 1,
            'rejected': 7
        },
        'number_tickets_per_status': {
            '*****@*****.**': 1
        }
    }
Example #15
0
def test_get_list_of_tickets_detail_False():
    rt_object = RTApiMock()
    rt_object.set_return(
        [
            u'rt/4.0.6 200 ok', u'',
            u'887677: create rt dashboard',
        ]
    )
    result = get_list_of_tickets(rt_object, 'Owner = "*****@*****.**" and Status == "open"', False)
    assert rt_object.uri == '/search/ticket'
    assert rt_object.data == {
        'query': 'Owner = "*****@*****.**" and Status == "open"',
    }
    assert result == [
        {
            u'subject': u'create rt dashboard',
            u'id': u'887677',
        }
    ]
Example #16
0
def test_user_closed_tickets_unknown_email():
    rt_object = RTApiMock()
    rt_object.set_return([
        u'id: ticket/887677',
        u'owner: [email protected]',
        u'subject: create rt dashboard',
        u'status: open',
        u'priority: 26',
        u'cf.{servico}: csc-gsiic',
        u'cf.{is - informatica e sistemas}: dir-inbox',
    ])
    test_config = DITICConfig()
    test_config.email_to_user = {
        '*****@*****.**': 'Vapi',
        '*****@*****.**': 'Alex',
    }
    with pytest.raises(ValueError) as value_error:
        user_closed_tickets(rt_object, '*****@*****.**')
    assert 'Unknown email/user:' in str(value_error)
Example #17
0
def test_user_tickets_details_unknown():
    rt_object = RTApiMock()
    rt_object.set_return([
        u'id: ticket/887677',
        u'owner: [email protected]',
        u'subject: create rt dashboard',
        u'status: open',
        u'priority: 26',
        u'cf.{servico}: csc-gsiic',
        u'cf.{is - informatica e sistemas}: dir-inbox',
    ])
    result = user_tickets_details(rt_object, 'unknown')
    assert 'Owner != "Nobody"' in rt_object.data['query']
    assert result == {
        'tickets': {
            u'26': [{
                u'status': u'open',
                u'priority': u'26',
                'kanban_actions': {
                    'increase_priority': False,
                    'decrease_priority': False,
                    'back': False,
                    'interrupted': False,
                    'stalled': False,
                    'forward': False
                },
                u'owner': u'*****@*****.**',
                u'cf.{is - informatica e sistemas}': u'dir-inbox',
                u'id': u'887677',
                u'cf.{servico}': u'csc-gsiic',
                u'subject': u'create rt dashboard'
            }]
        },
        'email_limit': {},
        'number_tickets_per_status': {
            'unknown': 1
        }
    }
Example #18
0
def test_stats_search_tickets_query_ok():
    rt_object = RTApiMock()
    rt_object.set_return([
        u'id: ticket/887677',
        u'owner: [email protected]',
        u'subject: create rt dashboard',
        u'status: open',
        u'priority: 26',
        u'cf.{servico}: csc-gsiic',
        u'cf.{is - informatica e sistemas}: dir-inbox',
        u'lastupdated: wed jul 15 21:16:50 2015',
    ])
    response = stats_search_tickets(rt_object, 'My search')
    assert response == [{
        u'status': u'open',
        u'priority': u'26',
        u'lastupdated': u'wed jul 15 21:16:50 2015',
        u'owner': u'*****@*****.**',
        u'cf.{is - informatica e sistemas}': u'dir-inbox',
        'id': u'887677',
        u'cf.{servico}': u'csc-gsiic',
        u'subject': u'create rt dashboard'
    }]
Example #19
0
def test_number_of_created_tickets_on_a_date_query_not_ok():
    rt_object = RTApiMock()
    rt_object.set_return(['no matching results.'])
    response = number_of_created_tickets_on_a_date(rt_object, 'My search')
    assert response == 0
Example #20
0
def test_get_list_of_tickets_ok():
    rt_object = RTApiMock()
    rt_object.set_return(
        [
                u'rt/4.0.6 200 ok', u'',
                u'id: ticket/887677',
                u'queue: general',
                u'owner: [email protected]',
                u'creator: [email protected]',
                u'subject: create rt dashboard',
                u'status: open',
                u'priority: 26',
                u'initialpriority: 25',
                u'finalpriority: 75',
                u'requestors: [email protected]',
                u'cc:',
                u'admincc:',
                u'created: wed jul 15 21:17:29 2015',
                u'starts: fri jul 24 13:08:34 2015',
                u'started: wed jul 15 21:17:38 2015',
                u'due: not set',
                u'resolved: sun jul 19 02:29:03 2015',
                u'told: not set',
                u'lastupdated: fri jul 24 13:08:14 2015',
                u'timeestimated: 0',
                u'timeworked: 1026 minutes',
                u'timeleft: 0',
                u'cf.{servico}: csc-gsiic',
                u'cf.{n\xba de equipamento}:',
                u'cf.{tipo interven\xe7\xe3o}:',
                u'cf.{is - informatica e sistemas}: dir-inbox',
                u'cf.{sistema}:',
                u'cf.{estado gsiic}:',
                u'cf.{prioridade do requerente}:',
                u'cf.{notas}:',
                u'cf.{tipo de pedido}:',
                u'cf.{linkreport}: relatorio'
            ]
    )

    # Test if everything is ok...
    result = get_list_of_tickets(rt_object, 'Owner = "*****@*****.**" and Status == "open"')

    assert result == [
        {
            u'status': u'open',
            u'resolved': u'sun jul 19 02:29:03 2015',
            u'cf.{n\xba de equipamento}': u'',
            u'creator': u'*****@*****.**',
            u'cc': u'',
            u'started': u'wed jul 15 21:17:38 2015',
            u'requestors': u'*****@*****.**',
            u'cf.{servico}': u'csc-gsiic',
            u'owner': u'*****@*****.**',
            u'cf.{is - informatica e sistemas}': u'dir-inbox',
            'id': u'887677',
            u'subject': u'create rt dashboard',
            u'queue': u'general',
            u'cf.{sistema}': u'',
            u'timeleft': u'0',
            u'cf.{tipo de pedido}': u'',
            u'cf.{prioridade do requerente}': u'',
            u'created': u'wed jul 15 21:17:29 2015',
            u'cf.{notas}': u'',
            u'starts': u'fri jul 24 13:08:34 2015',
            u'due': u'not set',
            u'lastupdated': u'fri jul 24 13:08:14 2015',
            u'timeworked': u'1026 minutes',
            u'priority': u'26',
            u'admincc': u'', u'cf.{tipo interven\xe7\xe3o}': u'',
            u'cf.{estado gsiic}': u'', u'timeestimated': u'0',
            u'initialpriority': u'25', u'finalpriority': u'75',
            u'cf.{linkreport}': u'relatorio',
            u'told': u'not set'
        }
    ]
Example #21
0
def test_stats_search_number_of_tickets_query_not_ok():
    rt_object = RTApiMock()
    rt_object.set_return(['no matching results.'])
    with pytest.raises(ValueError) as value_error:
        stats_search_number_of_tickets(rt_object, 'My search')
    assert 'no matching results.' in str(value_error)
Example #22
0
def test_stats_search_tickets_query_not_ok():
    rt_object = RTApiMock()
    rt_object.set_return(['no matching results.'])
    result = stats_search_tickets(rt_object, 'My search')
    assert result == []
Example #23
0
def test_modify_ticket():
    rt_object = RTApiMock()
    rt_object.set_return([u'rt/4.0.6 200 ok', u'', u'# ticket 887677 updated.', u''])
    result = modify_ticket(rt_object, '881188', {'Owner': '*****@*****.**'})
    assert result == [u'rt/4.0.6 200 ok', u'', u'# ticket 887677 updated.', u'']
Example #24
0
def test_get_list_of_tickets_invalid_username_or_password():
    rt_object = RTApiMock()
    rt_object.set_return(['your username or password is incorrect'])
    with pytest.raises(ValueError) as value_error:
        get_list_of_tickets(rt_object, 'Owner = "*****@*****.**" and Status == "open"')
    assert 'your username or password is incorrect' in str(value_error)
Example #25
0
def test_get_list_of_tickets_invalid_query():
    rt_object = RTApiMock()
    rt_object.set_return(['invalid query:'])
    with pytest.raises(ValueError) as value_error:
        get_list_of_tickets(rt_object, 'Owner = "*****@*****.**" and Status == "open"')
    assert 'invalid query' in str(value_error)
Example #26
0
def test_get_list_of_tickets_no_results():
    rt_object = RTApiMock()
    rt_object.set_return(['no matching results.'])
    with pytest.raises(ValueError) as value_error:
        get_list_of_tickets(rt_object, 'Owner = "*****@*****.**" and Status == "open"')
    assert 'no matching results.' in str(value_error)