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", } ]
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 } }
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
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
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' } ]
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
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
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...'}]
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 } } # As it is very complicated to mock the open function, I will pass those testes: # generate_summary_file # get_summary_info #
def test_user_tickets_details_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', ]) result = user_tickets_details(rt_object, '*****@*****.**') assert result == { 'email_limit': { 'new': 7, 'open': 1, 'rejected': 7 }, 'number_tickets_per_status': { u'open': 1 }, 'tickets': { u'open': { u'26': [ { u'cf.{is - informatica e sistemas}': u'dir-inbox', u'cf.{servico}': u'csc-gsiic', 'id': u'887677', 'kanban_actions': { 'back': True, 'decrease_priority': True, 'forward': True, 'increase_priority': True, 'interrupted': True, 'stalled': True }, u'owner': u'*****@*****.**', u'priority': u'26', u'status': u'open', u'subject': u'create rt dashboard' } ] } } }
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'}
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 } }
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']
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 } }
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']]
def test_ticket_actions_unset_urgent(): 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', 'unset_urgent', '*****@*****.**', '*****@*****.**') assert rt_object.uri == 'ticket/887677/edit' assert rt_object.data == { 'content': 'cf.{DITIC-Urgent}: \n', }
def test_ticket_actions_stalled_open(): 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'starts: '+str(ctime(time())), u'timeworked: 10 minutes', ] ) ticket_actions(rt_object, '887677', 'stalled', '*****@*****.**', '*****@*****.**') assert rt_object.uri == 'ticket/887677/edit' assert 'status: stalled\nstarts: 0\ntimeworked: 10.' in rt_object.data['content']
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!' }
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 } }
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 } }
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 } }
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)
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', } ]
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 } }
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!' }
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 } }
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' }]
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 == []
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'']
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)
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)
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 == []
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' } ]
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)
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
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
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)
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
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
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)