CoolFace
Apppublic

S-Dreamer/CodeCraftLab

sourceHugging Facemitupdated 4mo agoView on Hugging Face
0likes
test_utils.py91 linesDownload Raw Back to tests
1 2import unittest3from unittest.mock import patch4 5 6class TestStreamlitApp(unittest.TestCase):7    """Test suite for the Streamlit app components"""8 9    @patch("streamlit.title")10    @patch("streamlit.markdown")11    @patch("streamlit.subheader")12    @patch("streamlit.columns")13    @patch("streamlit.metric")14    @patch("utils.set_page_config")15    @patch("utils.display_sidebar")16    def test_app_initialization(17        self,18        mock_display_sidebar,19        mock_set_page_config,20        mock_metric,21        mock_columns,22        mock_subheader,23        mock_markdown,24        mock_title,25    ):26        """Test app initialization and component display"""27 28        mock_set_page_config.assert_called_once()29        mock_title.assert_called_once_with("CodeGen Hub")30        mock_markdown.assert_called()31        mock_display_sidebar.assert_called_once()32 33    @patch("streamlit.session_state", new_callable=dict)34    def test_session_state_initialization(self, mock_session_state):35        """Test session state variable initialization"""36 37        self.assertIn("datasets", mock_session_state)38        self.assertIn("trained_models", mock_session_state)39        self.assertIn("training_logs", mock_session_state)40        self.assertIn("training_progress", mock_session_state)41 42        self.assertEqual(mock_session_state["datasets"], {})43        self.assertEqual(mock_session_state["trained_models"], {})44        self.assertEqual(mock_session_state["training_logs"], [])45        self.assertEqual(mock_session_state["training_progress"], {})46 47    @patch("streamlit.metric")48    @patch("streamlit.session_state", new_callable=dict)49    def test_platform_statistics_display(self, mock_session_state,50                                         mock_metric):51        """Test platform statistics metrics display"""52        mock_session_state["datasets"] = {53            "dataset1": "data1",54            "dataset2": "data2"55        }56        mock_session_state["trained_models"] = {"model1": "trained_model1"}57        mock_session_state["training_progress"] = {58            "job1": {59                "status": "running"60            },61            "job2": {62                "status": "completed"63            },64            "job3": {65                "status": "running"66            },67        }68 69        mock_metric.assert_any_call("Datasets Available", 2)70        mock_metric.assert_any_call("Trained Models", 1)71        mock_metric.assert_any_call("Active Training Jobs", 2)72 73    @patch("streamlit.info")74    def test_getting_started_section_display(self, mock_info):75        """Test 'Getting Started' section instructions display"""76 77        expected_messages = [78            "1. ๐Ÿ“Š Start by uploading or selecting a Python code dataset in the **Dataset Management** section.",79            "2. ๐Ÿ› ๏ธ Configure and train your model in the **Model Training** section.",80            "3. ๐Ÿ’ก Generate code predictions using your trained models in the **Code Generation** section.",81            "4. ๐Ÿ”„ Access your models on Hugging Face Hub for broader use.",82        ]83 84        for msg in expected_messages:85            mock_info.assert_any_call(msg)86        self.assertEqual(mock_info.call_count, 4)87 88 89if __name__ == "__main__":90    unittest.main()91