aquabarrier / test_barrier_update.py
rajeshbms's picture
Add validation report for AquaBarrier project implementation
d5f727d
#!/usr/bin/env python3
"""
Script to test barrier size creation and update functionality
"""
import requests
import json
BASE_URL = "http://127.0.0.1:9291/api/v1"
def create_barrier_size():
"""Create a new barrier size and return its ID"""
print("Creating a new barrier size...")
# First, let's check what barrier sizes already exist
try:
response = requests.get(f"{BASE_URL}/bidders/barrier-sizes/all")
if response.status_code == 200:
existing_barriers = response.json()
print(f"Found {len(existing_barriers)} existing barrier sizes:")
for barrier in existing_barriers[:5]: # Show first 5
print(f" - ID: {barrier['Id']}, Height: {barrier.get('Height')}, Price: {barrier.get('Price')}")
if existing_barriers:
# Use the first existing barrier size for testing
barrier_id = existing_barriers[0]['Id']
print(f"Using existing barrier size ID: {barrier_id}")
return barrier_id
else:
print(f"Could not fetch existing barriers: {response.status_code}")
except Exception as e:
print(f"Error fetching existing barriers: {e}")
# Create a new barrier size
barrier_data = {
"Height": 10.0,
"Width": 12.0,
"Lenght": 25.0,
"CableUnits": 3,
"Price": 1500.00,
"IsStandard": True,
"bidder_id": 21378, # Using the same bidder ID from the original request
"inventory_id": 1
}
try:
response = requests.post(f"{BASE_URL}/bidders/barrier-sizes", json=barrier_data)
if response.status_code == 201:
result = response.json()
barrier_id = result['Id']
print(f"Successfully created barrier size with ID: {barrier_id}")
return barrier_id
else:
print(f"Failed to create barrier size: {response.status_code}")
print(f"Response: {response.text}")
return None
except Exception as e:
print(f"Error creating barrier size: {e}")
return None
def update_barrier_size(barrier_id):
"""Update the barrier size"""
print(f"\\nUpdating barrier size {barrier_id}...")
update_data = {
"Height": 12,
"Width": 15,
"Lenght": 20,
"CableUnits": 1500,
"Price": 2500,
"IsStandard": True,
"bidder_id": 21378,
"inventory_id": 1
}
try:
response = requests.put(f"{BASE_URL}/bidders/barrier-sizes/{barrier_id}", json=update_data)
print(f"Update response status: {response.status_code}")
print(f"Update response: {response.text}")
if response.status_code == 200:
print("βœ… Barrier size updated successfully!")
return True
else:
print("❌ Failed to update barrier size")
return False
except Exception as e:
print(f"Error updating barrier size: {e}")
return False
def test_specific_barrier_id():
"""Test the specific barrier ID 32739 that was failing"""
print(f"\\nTesting specific barrier ID 32739...")
# First check if it exists
try:
response = requests.get(f"{BASE_URL}/bidders/barrier-sizes/32739")
print(f"Check response status: {response.status_code}")
if response.status_code == 200:
print("βœ… Barrier size 32739 exists!")
return update_barrier_size(32739)
else:
print(f"❌ Barrier size 32739 does not exist: {response.text}")
return False
except Exception as e:
print(f"Error checking barrier size 32739: {e}")
return False
if __name__ == "__main__":
print("πŸ§ͺ Testing Barrier Size Update Functionality")
print("=" * 50)
# Test the specific barrier ID that was failing
if not test_specific_barrier_id():
# If 32739 doesn't exist, create/use another barrier size
barrier_id = create_barrier_size()
if barrier_id:
update_barrier_size(barrier_id)
else:
print("❌ Could not create or find a barrier size to test with")