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)