Exemple #1
0
    def test__vote_helper_success(self):
        """ Verifies the function updates decision properly on success."""
        strategy_hash.STRATEGY_HASH = {"AlwaysFail": AlwaysFailStrategy,
                                       "AlwaysSucceed" : AlwaysSucceedStrategy}
        decision = vote._vote_helper(self.member, self.bill2)

        # Make sure decision was initialized.
        self.assertEqual(decision.member, self.member._id)
        self.assertEqual(decision.bill, self.bill2._id)
        self.assertTrue(len(decision.for_stances) > 0)
        self.assertTrue(len(decision.agn_stances) > 0)

        # Make sure decision metrics were updated. Just test a few
        self.assertNotEquals(decision.MI_stance, None)
        self.assertTrue(len(decision.groups_for) > 0)

        # Verify that the decision was made.
        self.assertEquals(decision.strategy, "AlwaysSucceedStrategy")
        self.assertTrue(len(decision.reason) >= 0)
        self.assertTrue(len(decision.downside) >= 0)

        # Make sure the decision was stored in the DB
        decision_in_db = self.DB.find_one(db_constants.DECISIONS, {"member": decision.member})

        self.assertEquals(decision.strategy, decision_in_db.strategy)

        for stance1, stance2 in zip(decision.reason, decision_in_db.reason):
            self.assertTrue(stance1.__dict__, stance2.__dict__)

        for stance1, stance2 in zip(decision.downside, decision_in_db.downside):
            self.assertEquals(stance1.__dict__, stance2.__dict__)
Exemple #2
0
    def test__vote_helper_fails(self):
        """ Verifies that false is returned if strategies fail."""
        strategy_hash.STRATEGY_HASH = {"AlwaysFail": AlwaysFailStrategy,
                                       "AlwaysFail2" : AlwaysFailStrategy}
        result = vote._vote_helper(self.member, self.bill1)

        self.assertEquals(result.strategy, None)

        for _ in self.DB.find(db_constants.DECISIONS):
            raise Exception("Decision Object should not be saved if no decision made")