def test_drop_player_must_still_be_on_roster_already_dropped(): roster1 = Roster(id="1", name="team 1", rank=1, positions=deepcopy(league_positions)) roster1.positions["1"].player = player2 roster1.waiver_bids.append( WaiverBid(roster_id=roster1.id, player=player1, drop_player=player2, amount=25)) roster1.waiver_bids.append( WaiverBid(roster_id=roster1.id, player=player3, drop_player=player2, amount=15)) target = WaiverService(get_roster_player_service()) target.process_bids([roster1]) assert roster1.waiver_bids[ 1].result == WaiverBidResult.FailedDropPlayerNotOnRoster
def test_tie_goes_to_highest_priority_two_ties(): roster1 = Roster(id="1", name="team 1", rank=1, positions=deepcopy(league_positions)) roster2 = Roster(id="2", name="team 2", rank=2, positions=deepcopy(league_positions)) roster1.waiver_bids.append( WaiverBid(roster_id=roster1.id, player=player1, amount=5)) roster2.waiver_bids.append( WaiverBid(roster_id=roster2.id, player=player1, amount=5)) roster1.waiver_bids.append( WaiverBid(roster_id=roster1.id, player=player2, amount=5)) roster2.waiver_bids.append( WaiverBid(roster_id=roster2.id, player=player2, amount=5)) target = WaiverService(get_roster_player_service()) target.process_bids([roster1, roster2]) assert roster1.waiver_bids[ 0].result == WaiverBidResult.FailedLowerPriority, "Assert 1 failed" assert roster2.waiver_bids[ 0].result == WaiverBidResult.SuccessPending, "Assert 2 failed" assert roster1.waiver_bids[ 1].result == WaiverBidResult.SuccessPending, "Assert 3 failed" assert roster2.waiver_bids[ 1].result == WaiverBidResult.FailedLowerPriority, "Assert 4 failed"
def test_roster_budget_is_updated(): roster1 = Roster(id="1", name="team 1", rank=1, positions=deepcopy(league_positions)) roster1.waiver_bids.append( WaiverBid(roster_id=roster1.id, player=player1, amount=5)) target = WaiverService(get_roster_player_service()) target.process_bids([roster1]) assert roster1.waiver_budget == 95
def test_cannot_exceed_waiver_budget_one_bid(): roster1 = Roster(id="1", name="team 1", rank=1, waiver_budget=20, positions=deepcopy(league_positions)) roster1.waiver_bids.append( WaiverBid(roster_id=roster1.id, player=player1, amount=25)) target = WaiverService(get_roster_player_service()) target.process_bids([roster1]) assert roster1.waiver_bids[ 0].result == WaiverBidResult.FailedNotEnoughMoney
def test_teams_with_no_bids_work_ok(): roster1 = Roster(id="1", name="team 1", rank=1, positions=deepcopy(league_positions)) roster2 = Roster(id="2", name="team 2", rank=2, positions=deepcopy(league_positions)) roster1.waiver_bids.append( WaiverBid(roster_id=roster1.id, player=player1, amount=5)) target = WaiverService(get_roster_player_service()) target.process_bids([roster1, roster2]) assert roster1.waiver_bids[0].result == WaiverBidResult.SuccessPending
def test_drop_player_must_still_be_on_roster(): roster1 = Roster(id="1", name="team 1", rank=1, positions=deepcopy(league_positions)) # note that player 2 is not actually in a position on roster1 roster1.waiver_bids.append( WaiverBid(roster_id=roster1.id, player=player1, drop_player=player2, amount=25)) target = WaiverService(get_roster_player_service()) target.process_bids([roster1]) assert roster1.waiver_bids[ 0].result == WaiverBidResult.FailedDropPlayerNotOnRoster
def test_highest_bid_wins_second_team(): roster1 = Roster(id="1", name="team 1", rank=1, positions=deepcopy(league_positions)) roster2 = Roster(id="2", name="team 2", rank=2, positions=deepcopy(league_positions)) roster1.waiver_bids.append( WaiverBid(roster_id=roster1.id, player=player1, amount=4)) roster2.waiver_bids.append( WaiverBid(roster_id=roster2.id, player=player1, amount=5)) target = WaiverService(get_roster_player_service()) target.process_bids([roster1, roster2]) assert roster1.waiver_bids[0].result == WaiverBidResult.FailedOutBid assert roster2.waiver_bids[0].result == WaiverBidResult.SuccessPending