Beispiel #1
0
    def test_Table(self):
        tbl = Table(limit=30)
        bet1 = Bet(10, Outcome("Red", 1))
        bet2 = Bet(20, Outcome("Corner", 2))
        bet3 = Bet(30, Outcome("Black", 3))
        bet4 = Bet(40, Outcome("Street", 4))

        self.assertTrue(tbl.is_valid(bet1))
        self.assertTrue(tbl.is_valid(
            bet3))  # a bet of 30 should be acceptable even with a limit of 30

        self.assertFalse(tbl.is_valid(bet4))  # 40 should not be valid

        tbl.place_bet(bet1)
        tbl.place_bet(bet2)
        self.assertFalse(tbl.is_valid(bet1))
        """
        Test that exception will raise if a bet causes bets to exceed the table limit
        http://www.lengrand.fr/2011/12/pythonunittest-assertraises-raises-error/
        """
        self.assertRaises(
            InvalidBet,
            lambda: tbl.place_bet(bet2))  # this should raise an exception

        # test that Table object is iterable
        self.assertTrue(isinstance(tbl, collections.Iterable))
Beispiel #2
0
    def test_invalid_bet(self):

        with pytest.raises(InvalidBet):
            self.table.place_bet(Bet(105, Outcome("0", 35)))

        table2 = Table(100, self.table.wheel)
        table2.place_bet(Bet(60, Outcome("0", 35)))
        with pytest.raises(InvalidBet):
            self.table.place_bet(Bet(50, Outcome("0", 35)))
Beispiel #3
0
class TestTable:
    '''Tests that InvalidBet Exception is thrown when table enters invalid state.
    
    Invalid states are when:
        1. Sum of bets exceeds table limit.
        2. Bet amount is below table minimum.
    '''
    def setup_method(self, method):
        wheel = Wheel()
        self.table = Table(100, wheel)

    def test_invalid_bet(self):

        with pytest.raises(InvalidBet):
            self.table.place_bet(Bet(105, Outcome("0", 35)))

        table2 = Table(100, self.table.wheel)
        table2.place_bet(Bet(60, Outcome("0", 35)))
        with pytest.raises(InvalidBet):
            self.table.place_bet(Bet(50, Outcome("0", 35)))

    def test_add_bet(self):
        bet = Bet(60, Outcome("0", 35))
        self.table.place_bet(bet)
        assert bet == next(iter(self.table))

    def test_table_clear_bet(self):
        self.table.place_bet(Bet(60, Outcome("0", 35)))
        assert len(self.table.bets) == 1

        self.table.clear_bets()
        assert len(self.table.bets) == 0
def test_table_is_valid():
    wh = Wheel()

    with pytest.raises(InvalidBetException) as e_info:
        tt = Table(100, 5)

        # should violate the min bet amount and throw exception
        bt = Bet(1, wh.get_outcome('Even'))
        tt.place_bet(bt)

    with pytest.raises(InvalidBetException) as e_info:
        tt = Table(10, 5)
        bt = Bet(5, wh.get_outcome('Even'))
        tt.place_bet(bt)

        bt = Bet(5, wh.get_outcome('Even'))
        tt.place_bet(bt)

        # should exceed table limit and throw exception
        bt = Bet(5, wh.get_outcome('Even'))
        tt.place_bet(bt)


# def test_table_iter():
#     tt = Table(100, 5)
#     print(tt.__iter__().isinstance(Iterator))
Beispiel #5
0
    def test_Table(self):
        tbl = Table(limit=30)
        bet1 = Bet(10, Outcome("Red", 1))
        bet2 = Bet(20, Outcome("Corner", 2))
        bet3 = Bet(30, Outcome("Black", 3))
        bet4 = Bet(40, Outcome("Street", 4))

        self.assertTrue(tbl.is_valid(bet1))
        self.assertTrue(tbl.is_valid(bet3)) # a bet of 30 should be acceptable even with a limit of 30

        self.assertFalse(tbl.is_valid(bet4)) # 40 should not be valid

        tbl.place_bet(bet1)
        tbl.place_bet(bet2)
        self.assertFalse(tbl.is_valid(bet1))

        """
        Test that exception will raise if a bet causes bets to exceed the table limit
        http://www.lengrand.fr/2011/12/pythonunittest-assertraises-raises-error/
        """
        self.assertRaises(InvalidBet, lambda: tbl.place_bet(bet2)) # this should raise an exception

        # test that Table object is iterable
        self.assertTrue(isinstance(tbl, collections.Iterable))
Beispiel #6
0
 def test_TableStr(self):
     tbl = Table(limit=30)
     tbl.place_bet(Bet(10, Outcome("Red", 1)))
     self.assertEquals(str(tbl), "['amount on Red (1:1)']")
Beispiel #7
0
 def test_TableStr(self):
     tbl = Table(limit=30)
     tbl.place_bet(Bet(10, Outcome("Red", 1)))
     self.assertEquals(str(tbl), "['amount on Red (1:1)']")
def test_table_place_bet():
    tt = Table(100, 5)
    wh = Wheel()
    bt = Bet(10, wh.get_outcome('Even'))
    assert True == tt.place_bet(bt)