Example #1
0
    def test__apply_decision_strategies_no_strategies_in_hash(self):
        """ Verifies correctness if StrategyEntry's specify invalid strategies."""
        strategy_hash.STRATEGY_HASH = {}
        decision = Decision()

        result = vote._apply_decision_strategies(self.member, self.bill1, decision)
        self.assertFalse(result)
        self.assertEquals(decision.strategy, None)
Example #2
0
    def test__apply_decision_strategies_all_strategies_fail(self):
        """ Verifies that false is returned if strategies fail."""
        strategy_hash.STRATEGY_HASH = {"AlwaysFail": AlwaysFailStrategy,
                                       "AlwaysFail2" : AlwaysFailStrategy}
        decision = Decision()

        result = vote._apply_decision_strategies(self.member, self.bill1, decision)
        self.assertFalse(result)
        self.assertEquals(decision.strategy, None)
        self.assertEquals(AlwaysFailStrategy.call_count, 2)
Example #3
0
    def test__apply_decision_strategies_one_succeeds(self):
        """ Verifies that false is returned if strategies fail."""
        strategy_hash.STRATEGY_HASH = {"AlwaysFail": AlwaysFailStrategy,
                                       "AlwaysFail2" : AlwaysFailStrategy,
                                       "AlwaysSucceed" : AlwaysSucceedStrategy}
        decision = Decision()

        result = vote._apply_decision_strategies(self.member, self.bill1, decision)
        self.assertTrue(result)
        self.assertEquals(decision.strategy, "AlwaysSucceedStrategy")

        # Verify that the reasons and downsides get grouped.
        for i in range(0, len(decision.reason) - 1):
            keyi = [decision.downside[i].issue, decision.downside[i].side]
            keyi_plus_one = [decision.reason[i + 1].issue, decision.reason[i + 1].side]
            self.assertTrue(keyi <= keyi_plus_one)

        for i in range(0, len(decision.downside) - 1):
            keyi = [decision.downside[i].issue, decision.downside[i].side]
            keyi_plus_one = [decision.downside[i + 1].issue, decision.downside[i + 1].side]
            self.assertTrue(keyi <= keyi_plus_one)