Exemple #1
0
 def _execute(self, team_controller, date_converter=None, as_key=None):
     from agilo.scrum.metrics.model import TeamMetrics
     env = team_controller.env
     metrics = TeamMetrics(env, sprint=self.sprint, team=self.sprint.team)
     if metrics is not None:
         del metrics[self.metric]
         metrics.save()
Exemple #2
0
 def test_as_dict_serializes_all_metrics_entries(self):
     self.sprint.team = self.team
     metrics = TeamMetrics(self.env, self.sprint)
     metrics['bar'] = 7
     metrics.save()
     
     self.assert_equals({'quux': 42, 'bar': 7}, metrics.as_dict())
Exemple #3
0
 def setUp(self):
     self.super()
     self.team = self.teh.create_team(name="The A-Team")
     self.sprint = self.teh.create_sprint(name="Test Sprint", 
                      start=now(),  duration=7, team=self.team)
     
     self.metrics = TeamMetrics(self.env, self.sprint, self.team)
     self.metrics['quux'] = 42
     self.metrics.save()
Exemple #4
0
 def _execute(self, team_controller, date_converter=None, as_key=None):
     """Execute the command saving the data to the Team Metrics
     table, using the Team Metrics object"""
     if not self.sprint.team and not self.team:
         raise self.CommandError("No Team assigned to the given " \
                                 "Sprint %s!?" % self.sprint.name)
     
     from agilo.scrum.metrics.model import TeamMetrics
     team_metrics = TeamMetrics(team_controller.env, 
                                sprint=self.sprint,
                                team=self.team)
     if team_metrics is not None:
         team_metrics[self.metric] = self.value
         team_metrics.save()
         return team_metrics[self.metric]
Exemple #5
0
 def get_team_metrics(self):
     """
     Return the team metrics object for this sprint or None if no team
     is assigned for this sprint.
     """
     metrics = None
     if self.team != None:
         # Avoid recursive imports
         from agilo.scrum.metrics.model import TeamMetrics
         metrics = TeamMetrics(self.env, sprint=self, 
                               team=self.team)
     return metrics
Exemple #6
0
class TestTeamMetrics(AgiloTestCase):
    """Tests for the metrics model class TeamMetrics"""
    
    def setUp(self):
        self.super()
        self.team = self.teh.create_team(name="The A-Team")
        self.sprint = self.teh.create_sprint(name="Test Sprint", 
                         start=now(),  duration=7, team=self.team)
        
        self.metrics = TeamMetrics(self.env, self.sprint, self.team)
        self.metrics['quux'] = 42
        self.metrics.save()
    
    def test_keys_returns_all_metric_names(self):
        self.assert_equals(set(['quux']), set(self.metrics.keys()))
        self.metrics['foo'] = 21
        self.assert_equals(set(['foo', 'quux']), set(self.metrics.keys()))
    
    def test_metric_iterator_iterates_over_all_metric_names(self):
        self.assert_equals(['quux'], [i for i in self.metrics])
    
    def test_can_save_decimal_values_in_metrics(self):
        self.metrics['foo'] = 4.2
        self.metrics.save()
        
        metrics = TeamMetrics(self.env, self.sprint, self.team)
        self.assert_equals(4.2, metrics['foo'])
    
    def test_can_load_metric_with_specifying_team_explicitely(self):
        metrics = TeamMetrics(self.env, self.sprint)
        self.assert_equals(42, metrics['quux'])
    
    def test_delete_metric_is_automatically_persistant(self):
        del self.metrics['quux']
        self.assert_none(self.metrics['quux'])
        
        metrics = TeamMetrics(self.env, self.sprint, self.team)
        self.assert_none(metrics['quux'])
    
    def test_can_handle_multiple_metrics_with_the_same_key_in_different_sprints(self):
        second_sprint = self.teh.create_sprint(name="Second Sprint", 
                                               start=self.sprint.start, duration=5, 
                                               team=self.team)
        metrics_key = 'quux'
        second_metrics = TeamMetrics(self.env, second_sprint)
        second_metrics[metrics_key] = 21
        second_metrics.save()
        
        metrics = TeamMetrics(self.env, self.sprint)
        second_metrics = TeamMetrics(self.env, second_sprint)
        self.assert_equals(42, metrics[metrics_key])
        self.assert_equals(21, second_metrics[metrics_key])
    
    def test_as_dict_serializes_all_metrics_entries(self):
        self.sprint.team = self.team
        metrics = TeamMetrics(self.env, self.sprint)
        metrics['bar'] = 7
        metrics.save()
        
        self.assert_equals({'quux': 42, 'bar': 7}, metrics.as_dict())
Exemple #7
0
 def _execute(self, team_controller, date_converter=None, 
              as_key=None):
     """Execute the command saving the data to the Team Metrics
     table, using the Team Metrics object"""
     if not self.sprint.team and not self.team:
         return None
     
     from agilo.scrum.metrics.model import TeamMetrics
     team_metrics = TeamMetrics(team_controller.env, 
                                sprint=self.sprint,
                                team=self.team)
     if team_metrics is not None:
         return team_metrics[self.metric]
Exemple #8
0
 def test_can_handle_multiple_metrics_with_the_same_key_in_different_sprints(self):
     second_sprint = self.teh.create_sprint(name="Second Sprint", 
                                            start=self.sprint.start, duration=5, 
                                            team=self.team)
     metrics_key = 'quux'
     second_metrics = TeamMetrics(self.env, second_sprint)
     second_metrics[metrics_key] = 21
     second_metrics.save()
     
     metrics = TeamMetrics(self.env, self.sprint)
     second_metrics = TeamMetrics(self.env, second_sprint)
     self.assert_equals(42, metrics[metrics_key])
     self.assert_equals(21, second_metrics[metrics_key])
Exemple #9
0
        def _execute(self,
                     metrics_controller,
                     date_converter=None,
                     as_key=None):
            sprint_controller = metrics_controller.sprint_controller

            cmd_class = SprintController.ListSprintsCommand
            cmd = cmd_class(metrics_controller.env,
                            criteria={'team': self.team},
                            order_by=[Key.START])
            cmd.native = True
            sprints = sprint_controller.process_command(cmd)

            metrics_by_sprint = list()
            env = metrics_controller.env
            for sprint in sprints:
                metrics = TeamMetrics(env, sprint=sprint)
                metrics_by_sprint.append((sprint, metrics))

            return self.return_as_value_object(metrics_by_sprint)
Exemple #10
0
 def test_delete_metric_is_automatically_persistant(self):
     del self.metrics['quux']
     self.assert_none(self.metrics['quux'])
     
     metrics = TeamMetrics(self.env, self.sprint, self.team)
     self.assert_none(metrics['quux'])
Exemple #11
0
 def test_can_load_metric_with_specifying_team_explicitely(self):
     metrics = TeamMetrics(self.env, self.sprint)
     self.assert_equals(42, metrics['quux'])
Exemple #12
0
 def test_can_save_decimal_values_in_metrics(self):
     self.metrics['foo'] = 4.2
     self.metrics.save()
     
     metrics = TeamMetrics(self.env, self.sprint, self.team)
     self.assert_equals(4.2, metrics['foo'])