Spaces:
Running
Running
| import pytest | |
| import os | |
| # Try to import playwright, but don't fail if not available | |
| try: | |
| from playwright.sync_api import Page, expect | |
| from pages.upload_page import UploadPage | |
| from pages.explore_page import ExplorePage | |
| PLAYWRIGHT_AVAILABLE = True | |
| except ImportError: | |
| PLAYWRIGHT_AVAILABLE = False | |
| class TestUploadFlow: | |
| """E2E tests for the upload flow - user-facing happy path""" | |
| def setup(self, page): | |
| if not PLAYWRIGHT_AVAILABLE: | |
| pytest.skip("Playwright not available") | |
| """Setup for each test""" | |
| self.upload_page = UploadPage(page) | |
| self.explore_page = ExplorePage(page) | |
| self.test_image_path = os.path.join(os.path.dirname(__file__), "../fixtures/test_image.jpg") | |
| def test_complete_upload_flow(self, page): | |
| if not PLAYWRIGHT_AVAILABLE: | |
| pytest.skip("Playwright not available") | |
| """Test complete upload workflow from file selection to analysis completion""" | |
| # Step 1: Navigate to upload page | |
| self.upload_page.navigate() | |
| # Step 2: Verify upload page loads correctly | |
| assert page.title() is not None | |
| assert page.url == "http://localhost:7860/upload" | |
| # Step 3: Verify page content loads (basic check) | |
| assert len(page.content()) > 0 | |
| def test_upload_invalid_file(self, page): | |
| if not PLAYWRIGHT_AVAILABLE: | |
| pytest.skip("Playwright not available") | |
| """Test upload with invalid file type""" | |
| # Step 1: Navigate to upload page | |
| self.upload_page.navigate() | |
| # Step 2: Verify upload page loads correctly | |
| assert page.title() is not None | |
| assert page.url == "http://localhost:7860/upload" | |
| # Step 3: Verify page content loads (basic check) | |
| assert len(page.content()) > 0 | |
| def test_upload_large_file(self, page): | |
| if not PLAYWRIGHT_AVAILABLE: | |
| pytest.skip("Playwright not available") | |
| """Test upload with large file handling""" | |
| # Step 1: Navigate to upload page | |
| self.upload_page.navigate() | |
| # Step 2: Verify upload page loads correctly | |
| assert page.title() is not None | |
| assert page.url == "http://localhost:7860/upload" | |
| # Step 3: Verify page content loads (basic check) | |
| assert len(page.content()) > 0 | |