Download scripts/test_streamlit_ui.py from esalguero/FREDML: direct link, hf CLI and curl.
- Browser
- Download file 4.76 kB
-
https://huggingface.co/esalguero/FREDML/resolve/main/scripts/test_streamlit_ui.py
- Command line
-
hf download hf://esalguero/FREDML/scripts/test_streamlit_ui.py
-
curl -L -o test_streamlit_ui.py https://huggingface.co/esalguero/FREDML/resolve/main/scripts/test_streamlit_ui.py
4.76 kB
| #!/usr/bin/env python3 | |
| """ | |
| FRED ML - Streamlit UI Test | |
| Simple test to validate Streamlit UI functionality | |
| """ | |
| import os | |
| import sys | |
| import subprocess | |
| from pathlib import Path | |
| def test_streamlit_ui(): | |
| """Test Streamlit UI functionality""" | |
| print("π¨ Testing Streamlit UI...") | |
| # Check if Streamlit app exists | |
| app_path = Path(__file__).parent.parent / 'frontend/app.py' | |
| if not app_path.exists(): | |
| print("β Streamlit app not found") | |
| return False | |
| print("β Streamlit app exists") | |
| # Check app content | |
| with open(app_path, 'r') as f: | |
| content = f.read() | |
| # Check for required components | |
| required_components = [ | |
| 'st.set_page_config', | |
| 'show_executive_dashboard', | |
| 'show_advanced_analytics_page', | |
| 'show_indicators_page', | |
| 'show_reports_page', | |
| 'show_configuration_page' | |
| ] | |
| missing_components = [] | |
| for component in required_components: | |
| if component not in content: | |
| missing_components.append(component) | |
| if missing_components: | |
| print(f"β Missing components in Streamlit app: {missing_components}") | |
| return False | |
| else: | |
| print("β All required Streamlit components found") | |
| # Check for enterprise styling | |
| styling_components = [ | |
| 'main-header', | |
| 'metric-card', | |
| 'analysis-section', | |
| 'chart-container' | |
| ] | |
| missing_styling = [] | |
| for component in styling_components: | |
| if component not in content: | |
| missing_styling.append(component) | |
| if missing_styling: | |
| print(f"β οΈ Missing styling components: {missing_styling}") | |
| else: | |
| print("β Enterprise styling components found") | |
| # Check for analytics integration | |
| analytics_components = [ | |
| 'ComprehensiveAnalytics', | |
| 'EnhancedFREDClient', | |
| 'display_analysis_results' | |
| ] | |
| missing_analytics = [] | |
| for component in analytics_components: | |
| if component not in content: | |
| missing_analytics.append(component) | |
| if missing_analytics: | |
| print(f"β οΈ Missing analytics components: {missing_analytics}") | |
| else: | |
| print("β Analytics integration components found") | |
| print("β Streamlit UI test passed") | |
| return True | |
| def test_streamlit_syntax(): | |
| """Test Streamlit app syntax""" | |
| print("π Testing Streamlit app syntax...") | |
| app_path = Path(__file__).parent.parent / 'frontend/app.py' | |
| try: | |
| with open(app_path, 'r') as f: | |
| compile(f.read(), str(app_path), 'exec') | |
| print("β Streamlit app syntax is valid") | |
| return True | |
| except SyntaxError as e: | |
| print(f"β Streamlit app syntax error: {e}") | |
| return False | |
| except Exception as e: | |
| print(f"β Error testing syntax: {e}") | |
| return False | |
| def test_streamlit_launch(): | |
| """Test if Streamlit can launch the app""" | |
| print("π Testing Streamlit launch capability...") | |
| try: | |
| # Test if streamlit is available | |
| result = subprocess.run( | |
| ['streamlit', '--version'], | |
| capture_output=True, | |
| text=True | |
| ) | |
| if result.returncode == 0: | |
| print(f"β Streamlit version: {result.stdout.strip()}") | |
| return True | |
| else: | |
| print("β Streamlit not available") | |
| return False | |
| except FileNotFoundError: | |
| print("β Streamlit not installed") | |
| return False | |
| except Exception as e: | |
| print(f"β Error testing Streamlit: {e}") | |
| return False | |
| def main(): | |
| """Main test function""" | |
| print("π§ͺ Starting Streamlit UI Test") | |
| print("=" * 50) | |
| # Test 1: UI Components | |
| ui_test = test_streamlit_ui() | |
| # Test 2: Syntax | |
| syntax_test = test_streamlit_syntax() | |
| # Test 3: Launch capability | |
| launch_test = test_streamlit_launch() | |
| # Summary | |
| print("\n" + "=" * 50) | |
| print("π STREAMLIT UI TEST RESULTS") | |
| print("=" * 50) | |
| tests = [ | |
| ("UI Components", ui_test), | |
| ("Syntax Check", syntax_test), | |
| ("Launch Capability", launch_test) | |
| ] | |
| passed = 0 | |
| for test_name, result in tests: | |
| status = "β PASS" if result else "β FAIL" | |
| print(f"{test_name}: {status}") | |
| if result: | |
| passed += 1 | |
| print(f"\nOverall: {passed}/{len(tests)} tests passed") | |
| if passed == len(tests): | |
| print("π All Streamlit UI tests passed!") | |
| return True | |
| else: | |
| print("β Some Streamlit UI tests failed") | |
| return False | |
| if __name__ == "__main__": | |
| success = main() | |
| sys.exit(0 if success else 1) |