import unittest import os import tempfile import shutil from unittest.mock import patch, MagicMock from o11ydiagnosis.serverless import SlowStatsTask, SlowStatsMergeTask, StatementTask, StatementMergeTask class TestServerlessTasks(unittest.TestCase): def setUp(self): """Set up test fixtures""" self.temp_dir = tempfile.mkdtemp() self.mock_s3 = MagicMock() self.bucket = "test-bucket" def tearDown(self): """Clean up test fixtures""" if os.path.exists(self.temp_dir): shutil.rmtree(self.temp_dir) @patch('o11ydiagnosis.subtasks.slowlogconverter.objstore.S3') def test_slow_stats_task_initialization(self, mock_s3_class): """Test SlowStatsTask can be initialized""" mock_s3_class.return_value = self.mock_s3 task = SlowStatsTask(self.mock_s3, self.bucket, self.temp_dir) self.assertIsNotNone(task) self.assertEqual(task.bucket, self.bucket) self.assertEqual(task.cache_dir, self.temp_dir) @patch('o11ydiagnosis.subtasks.slowlogconverter.objstore.S3') def test_statement_task_initialization(self, mock_s3_class): """Test StatementTask can be initialized""" mock_s3_class.return_value = self.mock_s3 task = StatementTask(self.mock_s3, self.bucket, self.temp_dir) self.assertIsNotNone(task) self.assertEqual(task.bucket, self.bucket) self.assertEqual(task.cache_dir, self.temp_dir) @patch('o11ydiagnosis.subtasks.slowlogconverter.objstore.S3') def test_slow_stats_merge_task_initialization(self, mock_s3_class): """Test SlowStatsMergeTask can be initialized""" mock_s3_class.return_value = self.mock_s3 task = SlowStatsMergeTask(self.mock_s3, self.bucket, self.temp_dir) self.assertIsNotNone(task) @patch('o11ydiagnosis.subtasks.slowlogconverter.objstore.S3') def test_statement_merge_task_initialization(self, mock_s3_class): """Test StatementMergeTask can be initialized""" mock_s3_class.return_value = self.mock_s3 task = StatementMergeTask(self.mock_s3, self.bucket, self.temp_dir) self.assertIsNotNone(task) if __name__ == "__main__": unittest.main()