Spaces:
Runtime error
Runtime error
File size: 2,900 Bytes
5f491f6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | import pytest
from app import random_url, open_image_url, process_inputs
@pytest.mark.asyncio
async def test_random_url():
url = await random_url(None)
assert url is not None
assert url.startswith("http")
@pytest.mark.asyncio
async def test_random_url_handle_api_errors():
url = await random_url(None)
assert url is not None or url is None
@pytest.mark.asyncio
async def test_open_image_url():
valid_url = "https://example.com/valid_image.jpg"
invalid_url = "https://example.com/invalid_image.jpg"
image = await open_image_url(valid_url)
assert image is not None
image = await open_image_url(invalid_url)
assert image is None
@pytest.mark.asyncio
async def test_open_image_url_handle_http_errors():
invalid_url = "https://example.com/invalid_image.jpg"
image = await open_image_url(invalid_url)
assert image is None
@pytest.mark.asyncio
async def test_process_inputs():
valid_image_url = "https://example.com/valid_image.jpg"
invalid_image_url = "invalid_url"
class_names = "cat, dog"
# Test with valid inputs
async for result in process_inputs(class_names, valid_image_url):
assert "results" in result or "Fetching image and running model" in result
# Test with invalid image URL
async for result in process_inputs(class_names, invalid_image_url):
assert "Invalid URL provided" in result
# Test with empty class names
async for result in process_inputs("", valid_image_url):
assert "Provide class names" in result
@pytest.mark.asyncio
async def test_process_inputs_log_exceptions():
invalid_image_url = "https://example.com/invalid_image.jpg"
class_names = "cat, dog"
async for result in process_inputs(class_names, invalid_image_url):
assert "Something went wrong" in result
@pytest.mark.asyncio
async def test_process_inputs_check_class_names_empty():
valid_image_url = "https://example.com/valid_image.jpg"
async for result in process_inputs("", valid_image_url):
assert "Provide class names" in result
@pytest.mark.asyncio
async def test_process_inputs_validate_image_url():
invalid_image_url = "invalid_url"
class_names = "cat, dog"
async for result in process_inputs(class_names, invalid_image_url):
assert "Invalid URL provided" in result
@pytest.mark.asyncio
async def test_error_handling():
invalid_image_url = "https://example.com/invalid_image.jpg"
class_names = "cat, dog"
# Test error handling in random_url
url = await random_url(None)
assert url is not None
# Test error handling in open_image_url
image = await open_image_url(invalid_image_url)
assert image is None
# Test error handling in process_inputs
async for result in process_inputs(class_names, invalid_image_url):
assert "Something went wrong" in result
|