Пример #1
0
    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))
                
Пример #2
0
 def test_with_unknown_site(self):
     self.assertEqual(
         is_valid_auction(mock_auction_unknown_site, mock_sites_dict),
         False)
Пример #3
0
 def test_with_0_bids(self):
     self.assertEqual(
         is_valid_auction(mock_auction_no_bids, mock_sites_dict), False)
Пример #4
0
 def test_with_empty_auction(self):
     self.assertEqual(is_valid_auction({}, mock_sites_dict), False)
Пример #5
0
 def test_with_empty_sites_dict(self):
     self.assertEqual(is_valid_auction(mock_auction, {}), False)
Пример #6
0
 def test_with_correct_data(self):
     self.assertEqual(is_valid_auction(mock_auction, mock_sites_dict), True)