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')
Esempio n. 2
0
 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)
Esempio n. 3
0
 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)
Esempio n. 4
0
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)
Esempio n. 5
0
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)