def test_read_dict(self): """Test reading CSV with dict output""" # Read the file and assert that the dictionary output # matches self.data_dict data = DatabaseInterface.read_csv(self.filename, keyed=True) self.assertEqual(self.data_dict, data)
def setUp(self) -> None: """Set up test case""" # The read_csv method is tested above self.customer_data = DatabaseInterface.read_csv(os.path.join(DATA_DIR, CUSTOMERS), keyed=True) self.product_data = DatabaseInterface.read_csv(os.path.join(DATA_DIR, PRODUCTS), keyed=True) self.rental_data = DatabaseInterface.read_csv(os.path.join(DATA_DIR, RENTALS), keyed=False) self.customer_keys = list(self.customer_data.keys()) self.product_keys = list(self.product_data.keys()) self.products_remaining = dict(zip(self.product_keys, (self.product_data[k][PROD_QTY] for k in self.product_keys))) for rental in self.rental_data: # Subtract rented quantities from stock prod, qty = rental[PROD_ID], rental[RENT_QTY] try: self.products_remaining[prod] = self.products_remaining[prod] - qty except KeyError: pass else: if self.products_remaining[prod] <= 0: self.products_remaining.pop(prod)