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