def create_emtpy_sprint(env): assert sprint_name != None, 'Please configure a sprint name.' sprint = SprintModelManager(env).create(name=sprint_name, start=now(), duration=14) assert sprint is not None t_manager = AgiloTicketModelManager(env) for t_id, t_type, t_status in sprint._fetch_tickets(): ticket = t_manager.create(tkt_id=t_id, t_type=t_type) if ticket[Key.SPRINT] == sprint.name: ticket[Key.SPRINT] = None t_manager.save(ticket, None, 'reset sprint field for performance measurement')
def testTicketWithModelManager(self): """Tests the ticket creation via ModelManager""" from agilo.ticket.model import AgiloTicketModelManager manager = AgiloTicketModelManager(self.env) t1 = manager.create(summary='This is a test ticket', t_type=Type.TASK, remaining_time='12', description='take this') self.assert_true(t1.exists) self.assertNotEqual(0, t1.id) self.assert_equals('This is a test ticket', t1[Key.SUMMARY]) self.assert_equals('12', t1[Key.REMAINING_TIME]) self.assert_equals('take this', t1[Key.DESCRIPTION]) t2 = manager.get(tkt_id=t1.id) self.assert_true(t2.exists) self.assert_equals(t1.id, t2.id) # test cache too self.assert_equals(id(t1), id(t2)) # Now change the summary t2.summary = 'A new summary' manager.save(t2, author='tester', comment='Updated summary...') # is the same object so... self.assert_equals(t2.summary, t1.summary)
class TestTicketModelManager(AgiloTestCase): """Tests AgiloTicket ModelManager, in particular the select method""" def setUp(self): self.super() self.manager = AgiloTicketModelManager(self.env) def test_create_ticket(self): """Tests the creation of a ticket using the ModelManager""" t = self.manager.create(summary="This is a ticket") self.assert_true(t.exists, "Ticket not existing...") self.assert_equals("This is a ticket", t[Key.SUMMARY]) # Create without saving t2 = self.manager.create(summary="Not saved", save=False) self.assert_false(t2.exists, "The ticket has been saved!") self.assert_equals("Not saved", t2[Key.SUMMARY]) # Now add something and change the summary t2[Key.DESCRIPTION] = "changed" t2[Key.SUMMARY] = "Now saved" self.manager.save(t2) self.assert_true(t2.exists) self.assert_equals("changed", t2[Key.DESCRIPTION]) self.assert_equals("Now saved", t2[Key.SUMMARY]) def test_ticket_caching(self): """Tests the ticket caching""" t1 = self.manager.create(summary="Ticket #1", t_type=Type.USER_STORY) t1_dupe = self.manager.get(tkt_id=t1.id) self.assert_equals(t1, t1_dupe) def test_select_tickets(self): """Tests the select method to get tickets""" milestone = self.teh.create_milestone('Test') sprint = self.teh.create_sprint('Test', milestone=milestone) t1 = self.manager.create(summary="Ticket #1", t_type=Type.USER_STORY, sprint=sprint.name) t2 = self.manager.create(summary="Ticket #2", t_type=Type.TASK) # Now the plan select should return both tickets tickets = self.manager.select() self.assert_true(t1 in tickets, "T1 is not in tickets!?") self.assert_true(t2 in tickets, "T2 is not in tickets!?") # Now selects all tickets planned for sprint Test self.assert_equals(sprint.name, t1[Key.SPRINT]) tickets = self.manager.select(criteria={Key.SPRINT: 'Test'}) self.assert_true(t1 in tickets, "T1 is not in ticket!?") self.assert_false(t2 in tickets, "T2 is in tickets and should not?!") # Now selects all tickets planned for milestone Test self.assert_equals('Test', t1[Key.MILESTONE]) tickets = self.manager.select(criteria={Key.MILESTONE: 'Test'}) self.assert_true(t1 in tickets, "T1 is not in tickets!?") self.assert_false(t2 in tickets, "T2 is in tickets and should not?!") # Now tests the select with a limit to 1 tickets = self.manager.select(limit=1) self.assert_equals(1, len(tickets)) tickets = self.manager.select(limit=2) self.assert_equals(2, len(tickets)) # Now select all the tickets that have been created before now tickets = self.manager.select(criteria={'changetime': '<=%s' % \ t1.time_created}) self.assert_equals(2, len(tickets)) # Now try out the order by tickets = self.manager.select(order_by=['-sprint']) self.assert_equals(tickets[0], t1) self.assert_equals(tickets[1], t2) def test_criteria_not_split_if_no_type(self): """Tests the splitting of the criteria in the selct query when containing the paramater ticket type""" criteria = { 'summary': 'test', Key.REMAINING_TIME: '2', 'id': 'not in (1, 2, 3)' } self.assert_none(self.manager._split_ticket_type(criteria)) def test_criteria_split_if_type(self): """Tests the splitting of the criteria in the selct query when containing the paramater ticket type""" criteria = { 'summary': 'test', Key.REMAINING_TIME: '2', 'type': "in ('story', 'task')" } res = self.manager._split_ticket_type(criteria) self.assert_not_none(res) self.assert_equals('story', res[0].value) self.assert_equals('=', res[0].operator) self.assert_equals(('task', 'story'), res[1].value) self.assert_equals('in', res[1].operator)
class TestTicketModelManager(AgiloTestCase): """Tests AgiloTicket ModelManager, in particular the select method""" def setUp(self): self.super() self.manager = AgiloTicketModelManager(self.env) def test_create_ticket(self): """Tests the creation of a ticket using the ModelManager""" t = self.manager.create(summary="This is a ticket") self.assert_true(t.exists, "Ticket not existing...") self.assert_equals("This is a ticket", t[Key.SUMMARY]) # Create without saving t2 = self.manager.create(summary="Not saved", save=False) self.assert_false(t2.exists, "The ticket has been saved!") self.assert_equals("Not saved", t2[Key.SUMMARY]) # Now add something and change the summary t2[Key.DESCRIPTION] = "changed" t2[Key.SUMMARY] = "Now saved" self.manager.save(t2) self.assert_true(t2.exists) self.assert_equals("changed", t2[Key.DESCRIPTION]) self.assert_equals("Now saved", t2[Key.SUMMARY]) def test_ticket_caching(self): """Tests the ticket caching""" t1 = self.manager.create(summary="Ticket #1", t_type=Type.USER_STORY) t1_dupe = self.manager.get(tkt_id=t1.id) self.assert_equals(t1, t1_dupe) def test_select_tickets(self): """Tests the select method to get tickets""" milestone = self.teh.create_milestone('Test') sprint = self.teh.create_sprint('Test', milestone=milestone) t1 = self.manager.create(summary="Ticket #1", t_type=Type.USER_STORY, sprint=sprint.name) t2 = self.manager.create(summary="Ticket #2", t_type=Type.TASK) # Now the plan select should return both tickets tickets = self.manager.select() self.assert_true(t1 in tickets, "T1 is not in tickets!?") self.assert_true(t2 in tickets, "T2 is not in tickets!?") # Now selects all tickets planned for sprint Test self.assert_equals(sprint.name, t1[Key.SPRINT]) tickets = self.manager.select(criteria={Key.SPRINT: 'Test'}) self.assert_true(t1 in tickets, "T1 is not in ticket!?") self.assert_false(t2 in tickets, "T2 is in tickets and should not?!") # Now selects all tickets planned for milestone Test self.assert_equals('Test', t1[Key.MILESTONE]) tickets = self.manager.select(criteria={Key.MILESTONE: 'Test'}) self.assert_true(t1 in tickets, "T1 is not in tickets!?") self.assert_false(t2 in tickets, "T2 is in tickets and should not?!") # Now tests the select with a limit to 1 tickets = self.manager.select(limit=1) self.assert_equals(1, len(tickets)) tickets = self.manager.select(limit=2) self.assert_equals(2, len(tickets)) # Now select all the tickets that have been created before now tickets = self.manager.select(criteria={'changetime': '<=%s' % \ t1.time_created}) self.assert_equals(2, len(tickets)) # Now try out the order by tickets = self.manager.select(order_by=['-sprint']) self.assert_equals(tickets[0], t1) self.assert_equals(tickets[1], t2) def test_criteria_not_split_if_no_type(self): """Tests the splitting of the criteria in the selct query when containing the paramater ticket type""" criteria = {'summary': 'test', Key.REMAINING_TIME: '2', 'id': 'not in (1, 2, 3)'} self.assert_none(self.manager._split_ticket_type(criteria)) def test_criteria_split_if_type(self): """Tests the splitting of the criteria in the selct query when containing the paramater ticket type""" criteria = {'summary': 'test', Key.REMAINING_TIME: '2', 'type': "in ('story', 'task')"} res = self.manager._split_ticket_type(criteria) self.assert_not_none(res) self.assert_equals('story', res[0].value) self.assert_equals('=', res[0].operator) self.assert_equals(('task', 'story'), res[1].value) self.assert_equals('in', res[1].operator)