result = [] bid_units = {} sites_bidders = load_configuration() if is_valid_config(sites_bidders): # filter all the sites sites = get_sites(sites_bidders.get('sites', [])) # filter all the bidders # print(sites) bidders = get_bidders(sites_bidders.get('bidders', [])) # print(bidders) # print("********************") auctions = get_input() # print(sites) if is_valid_input(auctions): for auction in auctions: if is_valid_auction(auction, sites): site_auction = sites.get(auction['site'], None) if site_auction: ad_unit = auction['units'] # print(ad_unit) bid_units = initialise_units(ad_unit) # print(bid_units) for bid in auction['bids']: if validate_bidder(bid['bidder'], site_auction['bidders'], bidders): bid['adjusted_bid'] = calculated_bid(bid['bid'], bidders[bid['bidder']]['adjustment']) if validate_bid(bid, ad_unit, site_auction['floor']): bid_units[bid['unit']].append(bid) result.append(get_auction_results(bid_units))
def test_with_unknown_site(self): self.assertEqual( is_valid_auction(mock_auction_unknown_site, mock_sites_dict), False)
def test_with_0_bids(self): self.assertEqual( is_valid_auction(mock_auction_no_bids, mock_sites_dict), False)
def test_with_empty_auction(self): self.assertEqual(is_valid_auction({}, mock_sites_dict), False)
def test_with_empty_sites_dict(self): self.assertEqual(is_valid_auction(mock_auction, {}), False)
def test_with_correct_data(self): self.assertEqual(is_valid_auction(mock_auction, mock_sites_dict), True)