def test_get_ticket_without_cache_circumvents_cache(self):
     view = TicketUpdateView(self.env)
     newtask = self.teh.create_task()
     newtask[Key.REMAINING_TIME] = 3
     self.assert_equals('3', view._ticket(newtask.id)[Key.REMAINING_TIME])
     self.assert_equals(
         '',
         view._ticket_without_cache(newtask.id)[Key.REMAINING_TIME])
    def update_contains_can_edit(self, args):
        json = self.ticket_as_json(self.task)
        json.update(args)
        from agilo.ticket import AgiloTicketSystem
        if AgiloTicketSystem.is_trac_1_0():
            from trac.util.datefmt import to_utimestamp
            json.update(dict(view_time=str(to_utimestamp(self.task.time_changed)), submit=True))

        view = TicketUpdateView(self.env)
        result = view.do_post(self.req, json)
        return result['can_edit']
    def update_contains_can_edit(self, args):
        json = self.ticket_as_json(self.task)
        json.update(args)
        from agilo.ticket import AgiloTicketSystem
        if AgiloTicketSystem.is_trac_1_0():
            from trac.util.datefmt import to_utimestamp
            json.update(
                dict(view_time=str(to_utimestamp(self.task.time_changed)),
                     submit=True))

        view = TicketUpdateView(self.env)
        result = view.do_post(self.req, json)
        return result['can_edit']
 def test_validates_existence_of_custom_status(self):
     self.teh.move_changetime_to_the_past([self.task])
     req = self._request_for_ticket_change(Usernames.team_member,
                                           simple_status='fnord')
     response = self.assert_method_returns_error(
         TicketUpdateView(self.env).do_post, req, req.args)
     self.assert_contains("Invalid status", response.errors[0])
 def test_cannot_drag_task_if_not_a_team_member(self):
     req = self._request_for_ticket_change(username=Usernames.product_owner,
                                           simple_status='in_progress')
     self.teh.move_changetime_to_the_past([self.task])
     response = self.assert_method_returns_error(
         TicketUpdateView(self.env).do_post, req, req.args)
     self.assert_contains("doesn't belong to the team", response.errors[0])
     returned_ticket = ValueObject(response.current_data)
     self.assert_equals(Status.NEW, returned_ticket.status)
     self.assertEqual('', returned_ticket.owner)
    def test_cannot_change_to_value_to_empty(self):
        self._change_ticket(Usernames.team_member, component='component1')
        task_from_db = AgiloTicket(self.env, self.task.id)
        self.assert_equals('component1', task_from_db[Key.COMPONENT])

        req = self._request_for_ticket_change(Usernames.team_member,
                                              component='')
        response = self.assert_method_returns_error(
            TicketUpdateView(self.env).do_post, req, req.args)
        self.assert_contains('must be set', response.errors[0])

        task_from_db = AgiloTicket(self.env, self.task.id)
        self.assert_equals('component1', task_from_db[Key.COMPONENT])
 def _change_ticket(self, username, **kwargs):
     self.teh.move_changetime_to_the_past([self.task])
     req = self._request_for_ticket_change(username, **kwargs)
     json = TicketUpdateView(self.env).do_post(req, req.args)
     return ValueObject(json)
 def test_cannot_change_to_value_that_is_not_an_option(self):
     req = self._request_for_ticket_change(Usernames.team_member,
                                           component='fnord')
     response = self.assert_method_returns_error(
         TicketUpdateView(self.env).do_post, req, req.args)
     self.assert_contains('is not a valid value', response.errors[0])
 def test_get_ticket_without_cache_circumvents_cache(self):
     view = TicketUpdateView(self.env)
     newtask = self.teh.create_task()
     newtask[Key.REMAINING_TIME] = 3
     self.assert_equals('3', view._ticket(newtask.id)[Key.REMAINING_TIME])
     self.assert_equals('', view._ticket_without_cache(newtask.id)[Key.REMAINING_TIME])