Exemplo n.º 1
0
    def test_can_insert_bids(self):
        self.auction_manager = AuctionManager(load_existing_records=False)
        self.auction_manager.insert_bid(self.first_bid)
        self.assertEqual(self.auction_manager.get_total_bids(), 1)
        self.assertEqual(self.auction_manager.get_total_hits(), 1)
        registered_bid = self.auction_manager.get_bid_with_registered_item_id(
            self.first_bid["item_id"])
        self.assertEqual(registered_bid["best_bid"]["client_id"],
                         self.first_bid["client_id"])
        self.assertEqual(registered_bid["best_bid"]["price"],
                         self.first_bid["price"])
        timestamp_difference = datetime.now(
        ) - registered_bid["best_bid"]["timestamp"]
        self.assertLessEqual(timestamp_difference, timedelta(seconds=1))

        self.auction_manager.insert_bid(self.second_bid)
        self.assertEqual(self.auction_manager.get_total_bids(), 2)
        self.assertEqual(self.auction_manager.get_total_hits(), 2)
        registered_bid = self.auction_manager.get_bid_with_registered_item_id(
            self.second_bid["item_id"])
        self.assertEqual(registered_bid["best_bid"]["client_id"],
                         self.second_bid["client_id"])
        self.assertEqual(registered_bid["best_bid"]["price"],
                         self.second_bid["price"])
        timestamp_difference = datetime.now(
        ) - registered_bid["best_bid"]["timestamp"]
        self.assertLessEqual(timestamp_difference, timedelta(seconds=1))
Exemplo n.º 2
0
 def test_can_correctly_increment_number_of_hits_and_bids(self):
     self.auction_manager = AuctionManager(load_existing_records=False)
     self.auction_manager.insert_bid(self.first_bid)
     self.auction_manager.insert_bid(self.second_bid)
     self.auction_manager.insert_bid(self.highest_bid)
     self.assertEqual(self.auction_manager.get_total_bids(), 2)
     self.assertEqual(self.auction_manager.get_total_hits(), 3)
Exemplo n.º 3
0
def post_bid():
    auction_manager = AuctionManager()
    bid_request = json.loads(request.get_json())
    try:
        auction_manager.insert_bid(bid_request)
    except ValueError:
        abort(500)
    return json.dumps(auction_manager.get_records(), default=str)
Exemplo n.º 4
0
 def test_cannot_accept_out_of_format_bids(self):
     self.auction_manager = AuctionManager(load_existing_records=False)
     first_invalid_bid = {
         "item_id": 45234,
         "price": "23.a4",
         "client_id": "123"
     }
     second_invalid_bid = {
         "item_id": 45234,
         "price": "12few9",
         "client_id": "123"
     }
     with self.assertRaises(ValueError):
         self.auction_manager.insert_bid(first_invalid_bid)
     with self.assertRaises(ValueError):
         self.auction_manager.insert_bid(second_invalid_bid)
	def __init__(self):
		# self.__manager = None
		self.__manager = AuctionManager()

		f = Figlet(font='big')
		print(f.renderText('Manager'))

		cfg.RUNCFG["verbose"] = args.verbose

		if args.verbose == 1:
			log.warning("Log verbosity is enabled.")

		elif args.verbose == 2:
			log.warning("HIGH verbosity is enabled!")

		else:
			log.warning("Only regular information will be shown.")
Exemplo n.º 6
0
class AuctionManagerTest(unittest.TestCase):
    def setUp(self):
        self.first_bid = {"item_id": 111, "price": 1.99, "client_id": "123"}
        self.second_bid = {"item_id": 222, "price": 3.23, "client_id": "456"}
        self.highest_bid = {"item_id": 111, "price": 5.23, "client_id": "456"}

    def tearDown(self):
        AuctionManager(load_existing_records=False)

    def test_can_insert_bids(self):
        self.auction_manager = AuctionManager(load_existing_records=False)
        self.auction_manager.insert_bid(self.first_bid)
        self.assertEqual(self.auction_manager.get_total_bids(), 1)
        self.assertEqual(self.auction_manager.get_total_hits(), 1)
        registered_bid = self.auction_manager.get_bid_with_registered_item_id(
            self.first_bid["item_id"])
        self.assertEqual(registered_bid["best_bid"]["client_id"],
                         self.first_bid["client_id"])
        self.assertEqual(registered_bid["best_bid"]["price"],
                         self.first_bid["price"])
        timestamp_difference = datetime.now(
        ) - registered_bid["best_bid"]["timestamp"]
        self.assertLessEqual(timestamp_difference, timedelta(seconds=1))

        self.auction_manager.insert_bid(self.second_bid)
        self.assertEqual(self.auction_manager.get_total_bids(), 2)
        self.assertEqual(self.auction_manager.get_total_hits(), 2)
        registered_bid = self.auction_manager.get_bid_with_registered_item_id(
            self.second_bid["item_id"])
        self.assertEqual(registered_bid["best_bid"]["client_id"],
                         self.second_bid["client_id"])
        self.assertEqual(registered_bid["best_bid"]["price"],
                         self.second_bid["price"])
        timestamp_difference = datetime.now(
        ) - registered_bid["best_bid"]["timestamp"]
        self.assertLessEqual(timestamp_difference, timedelta(seconds=1))

    def test_can_update_bids(self):
        self.auction_manager = AuctionManager(load_existing_records=False)
        self.auction_manager.insert_bid(self.first_bid)
        self.auction_manager.insert_bid(self.highest_bid)
        self.assertEqual(self.auction_manager.get_total_bids(), 1)
        self.assertEqual(self.auction_manager.get_total_hits(), 2)
        registered_bid = self.auction_manager.get_bid_with_registered_item_id(
            self.highest_bid["item_id"])
        self.assertEqual(registered_bid["best_bid"]["client_id"],
                         self.highest_bid["client_id"])
        self.assertEqual(registered_bid["best_bid"]["price"],
                         self.highest_bid["price"])
        timestamp_difference = datetime.now(
        ) - registered_bid["best_bid"]["timestamp"]
        self.assertLessEqual(timestamp_difference, timedelta(seconds=1))

    def test_can_correctly_increment_number_of_hits_and_bids(self):
        self.auction_manager = AuctionManager(load_existing_records=False)
        self.auction_manager.insert_bid(self.first_bid)
        self.auction_manager.insert_bid(self.second_bid)
        self.auction_manager.insert_bid(self.highest_bid)
        self.assertEqual(self.auction_manager.get_total_bids(), 2)
        self.assertEqual(self.auction_manager.get_total_hits(), 3)

    def test_cannot_accept_out_of_format_bids(self):
        self.auction_manager = AuctionManager(load_existing_records=False)
        first_invalid_bid = {
            "item_id": 45234,
            "price": "23.a4",
            "client_id": "123"
        }
        second_invalid_bid = {
            "item_id": 45234,
            "price": "12few9",
            "client_id": "123"
        }
        with self.assertRaises(ValueError):
            self.auction_manager.insert_bid(first_invalid_bid)
        with self.assertRaises(ValueError):
            self.auction_manager.insert_bid(second_invalid_bid)
Exemplo n.º 7
0
 def tearDown(self):
     AuctionManager(load_existing_records=False)
def startManager():
    manager = AuctionManager()
    manager.startWorking()
Exemplo n.º 9
0
def get_stats():
    auction_manager = AuctionManager()
    records = auction_manager.get_records()
    return json.dumps(records, default=str)