Spaces:
Runtime error
Runtime error
File size: 3,252 Bytes
204f12a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
import unittest
from unittest.mock import patch
class TestStreamlitApp(unittest.TestCase):
"""Test suite for the Streamlit app components"""
@patch("streamlit.title")
@patch("streamlit.markdown")
@patch("streamlit.subheader")
@patch("streamlit.columns")
@patch("streamlit.metric")
@patch("utils.set_page_config")
@patch("utils.display_sidebar")
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()
@patch("streamlit.session_state", new_callable=dict)
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"], {})
@patch("streamlit.metric")
@patch("streamlit.session_state", new_callable=dict)
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)
@patch("streamlit.info")
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()
|