def test_can_have_two_markers(self):
     changes = [
         BurndownDataChange.create_aggregation_skip_marker(self.env, self.sprint_name()),
         BurndownDataChange.create_aggregation_skip_marker(self.env, self.sprint_name()),
     ]
     aggregated = self.aggregate(changes, interval=timedelta(hours=1))
     self.assert_length(2, aggregated)
     self.assert_equals(0, aggregated[0].remaining_time)
     self.assert_equals(0, aggregated[1].remaining_time)
Example #2
0
 def test_can_have_two_markers(self):
     changes = [
         BurndownDataChange.create_aggregation_skip_marker(
             self.env, self.sprint_name()),
         BurndownDataChange.create_aggregation_skip_marker(
             self.env, self.sprint_name()),
     ]
     aggregated = self.aggregate(changes, interval=timedelta(hours=1))
     self.assert_length(2, aggregated)
     self.assert_equals(0, aggregated[0].remaining_time)
     self.assert_equals(0, aggregated[1].remaining_time)
 def test_only_changes_surrounded_with_markers_(self):
     changes = [
         BurndownDataChange.create_aggregation_skip_marker(self.env, self.sprint_name()),
         self.change(timedelta(), 10),
         self.change(timedelta(), 10),
         self.change(timedelta(), 10),
         BurndownDataChange.create_aggregation_skip_marker(self.env, self.sprint_name()),
     ]
     aggregated = self.aggregate(changes, interval=timedelta(hours=1))
     self.assert_length(2, aggregated)
     self.assert_equals(0, aggregated[0].remaining_time)
     self.assert_equals(30, aggregated[1].remaining_time)
Example #4
0
 def test_only_changes_surrounded_with_markers_(self):
     changes = [
         BurndownDataChange.create_aggregation_skip_marker(
             self.env, self.sprint_name()),
         self.change(timedelta(), 10),
         self.change(timedelta(), 10),
         self.change(timedelta(), 10),
         BurndownDataChange.create_aggregation_skip_marker(
             self.env, self.sprint_name()),
     ]
     aggregated = self.aggregate(changes, interval=timedelta(hours=1))
     self.assert_length(2, aggregated)
     self.assert_equals(0, aggregated[0].remaining_time)
     self.assert_equals(30, aggregated[1].remaining_time)
 def test_can_have_normal_intersection_of_entries(self):
     changes = [
         self.change(timedelta(minutes=-1), 10),
         BurndownDataChange.create_aggregation_skip_marker(self.env, self.sprint_name()),
         self.change(timedelta(), 10),
         BurndownDataChange.create_aggregation_skip_marker(self.env, self.sprint_name()),
         self.change(timedelta(minutes=1), 10),
     ]
     aggregated = self.aggregate(changes)
     self.assert_length(4, aggregated)
     self.assert_equals(10, aggregated[0].remaining_time)
     self.assert_equals(10, aggregated[1].remaining_time)
     self.assert_equals(20, aggregated[2].remaining_time) # this is the jump
     self.assert_equals(30, aggregated[3].remaining_time)
Example #6
0
 def test_can_have_normal_intersection_of_entries(self):
     changes = [
         self.change(timedelta(minutes=-1), 10),
         BurndownDataChange.create_aggregation_skip_marker(
             self.env, self.sprint_name()),
         self.change(timedelta(), 10),
         BurndownDataChange.create_aggregation_skip_marker(
             self.env, self.sprint_name()),
         self.change(timedelta(minutes=1), 10),
     ]
     aggregated = self.aggregate(changes)
     self.assert_length(4, aggregated)
     self.assert_equals(10, aggregated[0].remaining_time)
     self.assert_equals(10, aggregated[1].remaining_time)
     self.assert_equals(20,
                        aggregated[2].remaining_time)  # this is the jump
     self.assert_equals(30, aggregated[3].remaining_time)
 def test_can_have_skip_marker_as_first_entry(self):
     changes = [
         BurndownDataChange.create_aggregation_skip_marker(self.env, self.sprint_name()),
         self.change(timedelta(minutes=1), 10),
         self.change(timedelta(minutes=30), 10),
     ]
     aggregated = self.aggregate(changes)
     self.assert_length(2, aggregated)
     self.assert_equals(0, aggregated[0].remaining_time)
     self.assert_equals(20, aggregated[1].remaining_time)
Example #8
0
 def test_can_have_skip_marker_as_first_entry(self):
     changes = [
         BurndownDataChange.create_aggregation_skip_marker(
             self.env, self.sprint_name()),
         self.change(timedelta(minutes=1), 10),
         self.change(timedelta(minutes=30), 10),
     ]
     aggregated = self.aggregate(changes)
     self.assert_length(2, aggregated)
     self.assert_equals(0, aggregated[0].remaining_time)
     self.assert_equals(20, aggregated[1].remaining_time)
 def test_can_add_additional_points_when_agregation_is_disabled_with_marker(self):
     changes = [
         self.change(timedelta(minutes=-30), 0),
         self.change(timedelta(minutes=-1), 10),
         BurndownDataChange.create_aggregation_skip_marker(self.env, self.sprint_name()),
         self.change(timedelta(minutes=1), 10),
         self.change(timedelta(minutes=30), 10),
     ]
     aggregated = self.aggregate(changes)
     self.assert_length(3, aggregated)
     self.assert_equals(0, aggregated[0].remaining_time)
     self.assert_equals(10, aggregated[1].remaining_time)
     self.assert_equals(30, aggregated[2].remaining_time)
Example #10
0
 def test_can_add_additional_points_when_agregation_is_disabled_with_marker(
         self):
     changes = [
         self.change(timedelta(minutes=-30), 0),
         self.change(timedelta(minutes=-1), 10),
         BurndownDataChange.create_aggregation_skip_marker(
             self.env, self.sprint_name()),
         self.change(timedelta(minutes=1), 10),
         self.change(timedelta(minutes=30), 10),
     ]
     aggregated = self.aggregate(changes)
     self.assert_length(3, aggregated)
     self.assert_equals(0, aggregated[0].remaining_time)
     self.assert_equals(10, aggregated[1].remaining_time)
     self.assert_equals(30, aggregated[2].remaining_time)
Example #11
0
    def _add_marker_if_neccessary(self, sprint_name):
        if sprint_name is None:
            return

        BurndownDataChange.create_aggregation_skip_marker(self.env, sprint_name).save()
Example #12
0
    def _add_marker_if_neccessary(self, sprint_name):
        if sprint_name is None:
            return

        BurndownDataChange.create_aggregation_skip_marker(
            self.env, sprint_name).save()