""" RED test — verify Gradio File with type="binary" passes bytes, not file objects. Regression test for: "Bytes object has no attribute read" error when uploading JPEG. Gradio's binary File type returns raw bytes, not a file-like object. """ import sys, os, pathlib # Read modal_app.py source directly (can't import a Modal Stub in test env) source_file = pathlib.Path(os.path.join(os.path.dirname(__file__), "..", "color_ux_access", "modal_app.py")) source = source_file.read_text() assert "isinstance(file_obj, bytes)" in source, \ "analyze_screenshot should check isinstance(file_obj, bytes) before calling .read()"