Exemplo n.º 1
0
    def testSprintWithTimezoneDifference(self):
        """Tests the sprint creation and manipulation with Timezone
        differences"""
        # Create a Sprint from Berlin with Daylight risk in Summer
        berlin_tz = get_timezone('GMT +2:00')  # 'Europe/Berlin'
        start_in_berlin = normalize_date(now(tz=berlin_tz))
        cmd_create = SprintController.CreateSprintCommand(
            self.env,
            name='TimezoneSprint',
            milestone='MyRelease',
            team=self.team.name,
            start=start_in_berlin,
            duration=15)
        sprint = self.controller.process_command(cmd_create)
        # now reload the sprint and check if the date is still valid
        # and has been correctly saved... but we will read from San
        # Francisco
        sf_tz = get_timezone('GMT -7:00')  # 'US/Pacific'
        # obvious, but you never know what pytz timezone does with the
        # daylight saving.
        self.assert_equals(start_in_berlin, start_in_berlin.astimezone(sf_tz))

        # check that the sprint.start is in UTC timezone
        self.assert_equals(timedelta(0), sprint.start.utcoffset())
        self.assert_equals(start_in_berlin, sprint.start.astimezone(berlin_tz))
        # now we read it as UTC and we create a SF timezone datetime
        start_in_sf = sprint.start.astimezone(sf_tz)
        # Python should compare the UTC value of the datetimes
        self.assert_equals(start_in_berlin, start_in_sf)
Exemplo n.º 2
0
    def testCreateAndSaveValidation(self):
        params = {'name': 'Sprint', 'milestone': 'Milestone'}

        self.assert_raises(ICommand.NotValidError,
                           SprintController.CreateSprintCommand, self.env,
                           **params)

        # Now add all the needed params and make it work
        params['start'] = now(tz=utc)
        params['duration'] = 10
        # Nothing bad should happen
        SprintController.CreateSprintCommand(self.env, **params)
        # Now start to mess around with dates and params
        del params['duration']
        self.assert_raises(ICommand.NotValidError,
                           SprintController.CreateSprintCommand, self.env,
                           **params)
        params['duration'] = 'asfu'  # is a string not convertible to int
        self.assert_raises(ICommand.NotValidError,
                           SprintController.CreateSprintCommand, self.env,
                           **params)
        params['duration'] = '10'  # is a string but convertible
        del params['start']
        self.assert_raises(ICommand.NotValidError,
                           SprintController.CreateSprintCommand, self.env,
                           **params)
        params['start'] = now(tz=utc)
        # again ok
        self.assert_true('start' in params)
        self.assert_true('end' in params or 'duration' in params)
        SprintController.CreateSprintCommand(self.env, **params)
        # Now provide invalid dates
        params['end'] = 'ad-232-34534'
        self.assert_raises(ICommand.NotValidError,
                           SprintController.CreateSprintCommand, self.env,
                           **params)
Exemplo n.º 3
0
 def testCreateSprintCommand(self):
     """Tests the creation of a Sprint like a View would do"""
     sprint_start = normalize_date(now(tz=utc))
     cmd_create = SprintController.CreateSprintCommand(
         self.env,
         name='AnotherTestSprint',
         milestone='MyRelease',
         team=self.team.name,
         start=sprint_start,
         duration=15)
     sprint = self.controller.process_command(cmd_create)
     self.assert_not_none(sprint)
     self.assert_equals('AnotherTestSprint', sprint.name)
     self.assert_equals('MyRelease', sprint.milestone)
     self.assert_equals('ControllerTeam', sprint.team.name)
     self.assert_equals(sprint_start, sprint.start)
     # Negative test, should not create the sprint cause it exists already
     cmd_create.sprint_name = 'TestSprint'
     self.assert_none(self.controller.process_command(cmd_create))