def test_awarded_and_lots_predicate(self): blck_com_status = 'blck_com_status' auction_statuses = ['active.qualification', 'active.awarded'] auction_com_status = 'auction_com_status' auction_complaints = munch.Munch({ 'status': auction_com_status, 'relatedLot': None }) auction = munch.Munch({ 'lots': True, 'status': auction_statuses[0], 'block_complaint_status': blck_com_status, 'complaints': [auction_complaints] }) result = awarded_and_lots_predicate(auction) self.assertEqual(result, True) auction.lots = None result = awarded_and_lots_predicate(auction) self.assertEqual(result, None) auction.lots = True auction.status = auction_statuses[1] result = awarded_and_lots_predicate(auction) self.assertEqual(result, True) auction.status = 'not_active' result = awarded_and_lots_predicate(auction) self.assertEqual(result, False) auction.status = auction_statuses[1] auction.block_complaint_status = auction_com_status result = awarded_and_lots_predicate(auction) self.assertEqual(result, False)
def next_check_awarding(auction): checks = [] if not auction.lots and auction.status == 'active.qualification': for award in auction.awards: if award.status == 'pending.admission': checks.append(award.admissionPeriod.endDate.astimezone(TZ)) elif awarded_and_lots_predicate(auction): checks = check_lots_awarding(auction) return min(checks) if checks else None
def next_check_awarding(auction): checks = [] if awarded_and_lots_predicate(auction): checks = check_lots_awarding(auction) return min(checks) if checks else None