# setup_test_db.py from pymongo import MongoClient import logging logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') logger = logging.getLogger(__name__) def setup_test_db(): client = MongoClient("mongodb://localhost:27017") db = client["pos_system"] # Clear existing data db.items.drop() db.orders.drop() # Insert test items items = [ {"name": "Apple", "price": 0.5, "quantity": 100, "unit": "piece"}, {"name": "Banana", "price": 0.3, "quantity": 150, "unit": "piece"}, {"name": "Milk", "price": 2.5, "quantity": 50, "unit": "liter"}, {"name": "Bread", "price": 1.5, "quantity": 30, "unit": "loaf"} ] result = db.items.insert_many(items) logger.info(f"Inserted {len(result.inserted_ids)} items") # Insert test orders orders = [ {"customer_name": "John Doe", "items": [ "Apple", "Milk"], "total_amount": 3.0, "payment_method": "cash", "date": "2024-03-15"}, {"customer_name": "Jane Smith", "items": [ "Banana", "Bread"], "total_amount": 1.8, "payment_method": "credit_card", "date": "2024-03-16"} ] result = db.orders.insert_many(orders) logger.info(f"Inserted {len(result.inserted_ids)} orders") user_data = [{ "username": "testuser", "email": "testuser@example.com", "password": "testpassword", "full_name": "Test User", "is_active": True, "is_superuser": False }] # response = client.post("/users/register", json=user_data) result = db.users.insert_many(user_data) # assert response.status_code == 200, f"Failed to create user: {response.text}" print("USER CREATION RESULT =", result) # login_data = { # "username": "testuser", # "password": "testpassword" # } # response = client.post("/token", data=login_data) # assert response.status_code == 200 # print("ACCESS TOKEN =", response.json()["access_token"]) logger.info("Test database setup complete") if __name__ == "__main__": setup_test_db()