Spaces:
Runtime error
Runtime error
| import unittest | |
| from unittest.mock import patch | |
| class TestStreamlitApp(unittest.TestCase): | |
| """Test suite for the Streamlit app components""" | |
| def test_app_initialization( | |
| self, | |
| mock_display_sidebar, | |
| mock_set_page_config, | |
| mock_metric, | |
| mock_columns, | |
| mock_subheader, | |
| mock_markdown, | |
| mock_title, | |
| ): | |
| """Test app initialization and component display""" | |
| mock_set_page_config.assert_called_once() | |
| mock_title.assert_called_once_with("CodeGen Hub") | |
| mock_markdown.assert_called() | |
| mock_display_sidebar.assert_called_once() | |
| def test_session_state_initialization(self, mock_session_state): | |
| """Test session state variable initialization""" | |
| self.assertIn("datasets", mock_session_state) | |
| self.assertIn("trained_models", mock_session_state) | |
| self.assertIn("training_logs", mock_session_state) | |
| self.assertIn("training_progress", mock_session_state) | |
| self.assertEqual(mock_session_state["datasets"], {}) | |
| self.assertEqual(mock_session_state["trained_models"], {}) | |
| self.assertEqual(mock_session_state["training_logs"], []) | |
| self.assertEqual(mock_session_state["training_progress"], {}) | |
| def test_platform_statistics_display(self, mock_session_state, | |
| mock_metric): | |
| """Test platform statistics metrics display""" | |
| mock_session_state["datasets"] = { | |
| "dataset1": "data1", | |
| "dataset2": "data2" | |
| } | |
| mock_session_state["trained_models"] = {"model1": "trained_model1"} | |
| mock_session_state["training_progress"] = { | |
| "job1": { | |
| "status": "running" | |
| }, | |
| "job2": { | |
| "status": "completed" | |
| }, | |
| "job3": { | |
| "status": "running" | |
| }, | |
| } | |
| mock_metric.assert_any_call("Datasets Available", 2) | |
| mock_metric.assert_any_call("Trained Models", 1) | |
| mock_metric.assert_any_call("Active Training Jobs", 2) | |
| def test_getting_started_section_display(self, mock_info): | |
| """Test 'Getting Started' section instructions display""" | |
| expected_messages = [ | |
| "1. π Start by uploading or selecting a Python code dataset in the **Dataset Management** section.", | |
| "2. π οΈ Configure and train your model in the **Model Training** section.", | |
| "3. π‘ Generate code predictions using your trained models in the **Code Generation** section.", | |
| "4. π Access your models on Hugging Face Hub for broader use.", | |
| ] | |
| for msg in expected_messages: | |
| mock_info.assert_any_call(msg) | |
| self.assertEqual(mock_info.call_count, 4) | |
| if __name__ == "__main__": | |
| unittest.main() | |