Spaces:
Sleeping
Sleeping
| import pytest | |
| import pandas as pd | |
| import requests | |
| # Define base URL for the FastAPI application | |
| BASE_URL = "http://127.0.0.1:8000" | |
| # Define sample device specifications | |
| device_specs = { | |
| "battery_power": 3000, | |
| "blue": 1, | |
| "clock_speed": 2.0, | |
| "dual_sim": 0, | |
| "fc": 5.0, | |
| "four_g": 1, | |
| "int_memory": 64.0, | |
| "m_dep": 0.4, | |
| "mobile_wt": 150.0, | |
| "n_cores": 8.0, | |
| "pc": 12.0, | |
| "px_height": 1920.0, | |
| "px_width": 1080.0, | |
| "ram": 4.0, | |
| "sc_h": 5.5, | |
| "sc_w": 2.5, | |
| "talk_time": 10.0, | |
| "three_g": 1, | |
| "touch_screen": 1, | |
| "wifi": 1 | |
| } | |
| def test_predict_price(): | |
| """ | |
| Test the predict price endpoint. | |
| Steps: | |
| 1. Define device specifications and device ID. | |
| 2. Send a POST request to the predict price endpoint with the device specifications. | |
| 3. Validate that the response status code is 200 (OK). | |
| 4. Parse the response JSON and validate that it contains the expected fields. | |
| 5. Print the predicted price. | |
| """ | |
| # Define device ID | |
| device_id = 1 | |
| # Send POST request to predict price | |
| response = requests.post(f"{BASE_URL}/predict/{device_id}", json=device_specs) | |
| # Check if request was successful (status code 200) | |
| assert response.status_code == 200 | |
| # Parse response JSON | |
| data = pd.DataFrame(response.json()) | |
| # Validate response fields | |
| assert "device_id" in data.columns | |
| assert "predicted_price" in data.columns | |
| # Print predicted price | |
| print(f"Predictions\n{data[['device_id', 'predicted_price']].to_markdown()} ") | |
| if __name__ == "__main__": | |
| pytest.main() | |