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)
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)
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)