Spaces:
Sleeping
Sleeping
Add mock Gradio components for testing
Browse files- Create MockComponent class to track visibility attributes
- Add mocks for DownloadButton, DataFrame, Label, and Textbox
- Enables proper testing of UI component state changes
- tests/conftest.py +29 -0
tests/conftest.py
CHANGED
|
@@ -4,6 +4,15 @@ import sys
|
|
| 4 |
from unittest.mock import MagicMock
|
| 5 |
|
| 6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
# Create mock for gradio with Error class
|
| 8 |
class GradioMock(MagicMock):
|
| 9 |
"""Mock for gradio that supports Error and Warning classes."""
|
|
@@ -15,6 +24,26 @@ class GradioMock(MagicMock):
|
|
| 15 |
"""Mock Warning that accepts a message."""
|
| 16 |
return None
|
| 17 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
Request = MagicMock
|
| 19 |
Progress = MagicMock
|
| 20 |
|
|
|
|
| 4 |
from unittest.mock import MagicMock
|
| 5 |
|
| 6 |
|
| 7 |
+
# Create mock component that tracks visible attribute
|
| 8 |
+
class MockComponent(MagicMock):
|
| 9 |
+
"""Mock Gradio component that tracks visible attribute."""
|
| 10 |
+
|
| 11 |
+
def __init__(self, *args, **kwargs):
|
| 12 |
+
super().__init__(*args, **kwargs)
|
| 13 |
+
self.visible = kwargs.get('visible', True)
|
| 14 |
+
|
| 15 |
+
|
| 16 |
# Create mock for gradio with Error class
|
| 17 |
class GradioMock(MagicMock):
|
| 18 |
"""Mock for gradio that supports Error and Warning classes."""
|
|
|
|
| 24 |
"""Mock Warning that accepts a message."""
|
| 25 |
return None
|
| 26 |
|
| 27 |
+
@staticmethod
|
| 28 |
+
def DownloadButton(*args, **kwargs):
|
| 29 |
+
"""Mock DownloadButton that tracks visible attribute."""
|
| 30 |
+
return MockComponent(*args, **kwargs)
|
| 31 |
+
|
| 32 |
+
@staticmethod
|
| 33 |
+
def DataFrame(*args, **kwargs):
|
| 34 |
+
"""Mock DataFrame that tracks visible attribute."""
|
| 35 |
+
return MockComponent(*args, **kwargs)
|
| 36 |
+
|
| 37 |
+
@staticmethod
|
| 38 |
+
def Label(*args, **kwargs):
|
| 39 |
+
"""Mock Label that tracks visible attribute."""
|
| 40 |
+
return MockComponent(*args, **kwargs)
|
| 41 |
+
|
| 42 |
+
@staticmethod
|
| 43 |
+
def Textbox(*args, **kwargs):
|
| 44 |
+
"""Mock Textbox that tracks visible attribute."""
|
| 45 |
+
return MockComponent(*args, **kwargs)
|
| 46 |
+
|
| 47 |
Request = MagicMock
|
| 48 |
Progress = MagicMock
|
| 49 |
|