Esempio n. 1
0
class SprintCreationTest(AgiloTestCase):
    
    def setUp(self):
        self.super()
        self.view = SprintEditView(self.env)
        self.teh.grant_permission(Usernames.product_owner, Action.SPRINT_EDIT)
        self.milestone = self.teh.create_milestone('milestone')
    
    def test_can_not_create_sprints_with_slash_in_name(self):
        req = self.teh.mock_request(Usernames.product_owner)
        req.args = dict(add='add', sprint_name='a/b', start=format_date(now()), 
                        duration=10, milestone=self.milestone.name)
        self.assert_raises(ICommand.NotValidError, self.view.do_post, req)
        self.assert_false(Sprint(self.env, name='a/b').exists)
    
    def test_return_error_if_sprint_already_exists(self):
        self.teh.create_sprint('fnord')
        req = self.teh.mock_request(Usernames.product_owner)
        req.args = dict(add='add', sprint_name='fnord', start=format_date(now()), 
                        duration=10, milestone=self.milestone.name)
        self.assert_raises(ICommand.NotValidError, self.view.do_post, req)

    def _assert_prepared_data_contains_time_offset(self, data, timezone_info):
        self.assert_contains("timezone_of_sprint", data)
        hours_offset = timezone_info.utcoffset(now()).seconds / 3600
        self.assert_isinstance(data["timezone_of_sprint"], basestring)
        self.assert_contains(str(hours_offset), data['timezone_of_sprint'])

    def test_can_prepare_human_readable_timezone_for_template_if_using_server_time(self):
        req = self.teh.mock_request(Usernames.product_owner)
        req.tz = localtz

        data = self.view.prepare_data(req)
        self._assert_prepared_data_contains_time_offset(data, localtz)
        self.assert_contains("Default timezone", data['timezone_of_sprint'])

    def test_can_prepare_human_readable_timezone_for_template_if_using_user_time(self):
        req = self.teh.mock_request(Usernames.product_owner)
        sydney_in_winter = timezone("GMT +10:00")
        req.tz = sydney_in_winter

        data = self.view.prepare_data(req)
        self._assert_prepared_data_contains_time_offset(data, sydney_in_winter)

    def test_can_create_sprints_for_milestones_with_slash_in_name(self):
        self.teh.create_milestone("milestone/fnord")
        req = self.teh.mock_request(Usernames.product_owner)

        req.args = dict(add='add', sprint_name='fnord', start=format_date(now()),
                        duration=10, milestone="milestone/fnord")
        self.assert_raises(RequestDone, self.view.do_post, req)
Esempio n. 2
0
 def setUp(self):
     self.super()
     self.view = SprintEditView(self.env)
     self.teh.grant_permission(Usernames.product_owner, Action.SPRINT_EDIT)
     self.sprint = self.teh.create_sprint('fnord')
Esempio n. 3
0
 def setUp(self):
     self.super()
     self.view = SprintEditView(self.env)
     self.teh.grant_permission(Usernames.product_owner, Action.SPRINT_EDIT)
     self.milestone = self.teh.create_milestone('milestone')
Esempio n. 4
0
class SprintCreationTest(AgiloTestCase):
    def setUp(self):
        self.super()
        self.view = SprintEditView(self.env)
        self.teh.grant_permission(Usernames.product_owner, Action.SPRINT_EDIT)
        self.milestone = self.teh.create_milestone('milestone')

    def test_can_not_create_sprints_with_slash_in_name(self):
        req = self.teh.mock_request(Usernames.product_owner)
        req.args = dict(add='add',
                        sprint_name='a/b',
                        start=format_date(now()),
                        duration=10,
                        milestone=self.milestone.name)
        self.assert_raises(ICommand.NotValidError, self.view.do_post, req)
        self.assert_false(Sprint(self.env, name='a/b').exists)

    def test_return_error_if_sprint_already_exists(self):
        self.teh.create_sprint('fnord')
        req = self.teh.mock_request(Usernames.product_owner)
        req.args = dict(add='add',
                        sprint_name='fnord',
                        start=format_date(now()),
                        duration=10,
                        milestone=self.milestone.name)
        self.assert_raises(ICommand.NotValidError, self.view.do_post, req)

    def _assert_prepared_data_contains_time_offset(self, data, timezone_info):
        self.assert_contains("timezone_of_sprint", data)
        hours_offset = timezone_info.utcoffset(now()).seconds / 3600
        self.assert_isinstance(data["timezone_of_sprint"], basestring)
        self.assert_contains(str(hours_offset), data['timezone_of_sprint'])

    def test_can_prepare_human_readable_timezone_for_template_if_using_server_time(
            self):
        req = self.teh.mock_request(Usernames.product_owner)
        req.tz = localtz

        data = self.view.prepare_data(req)
        self._assert_prepared_data_contains_time_offset(data, localtz)
        self.assert_contains("Default timezone", data['timezone_of_sprint'])

    def test_can_prepare_human_readable_timezone_for_template_if_using_user_time(
            self):
        req = self.teh.mock_request(Usernames.product_owner)
        sydney_in_winter = timezone("GMT +10:00")
        req.tz = sydney_in_winter

        data = self.view.prepare_data(req)
        self._assert_prepared_data_contains_time_offset(data, sydney_in_winter)

    def test_can_create_sprints_for_milestones_with_slash_in_name(self):
        self.teh.create_milestone("milestone/fnord")
        req = self.teh.mock_request(Usernames.product_owner)

        req.args = dict(add='add',
                        sprint_name='fnord',
                        start=format_date(now()),
                        duration=10,
                        milestone="milestone/fnord")
        self.assert_raises(RequestDone, self.view.do_post, req)
Esempio n. 5
0
 def setUp(self):
     self.super()
     self.view = SprintEditView(self.env)
     self.teh.grant_permission(Usernames.product_owner, Action.SPRINT_EDIT)
     self.milestone = self.teh.create_milestone('milestone')