|
| 1 | +import tempfile |
| 2 | +import unittest |
| 3 | +from pathlib import Path |
| 4 | +from unittest.mock import patch |
| 5 | + |
| 6 | +from oclp_r.support.network_handler import DownloadObject, DownloadStatus |
| 7 | + |
| 8 | + |
| 9 | +class DownloadObjectStatusTests(unittest.TestCase): |
| 10 | + def test_multipart_download_marks_status_complete(self): |
| 11 | + with tempfile.TemporaryDirectory() as temp_dir: |
| 12 | + target = Path(temp_dir) / "demo.bin" |
| 13 | + |
| 14 | + with patch("oclp_r.support.network_handler.NetworkUtilities.verify_network_connection", return_value=True), \ |
| 15 | + patch.object(DownloadObject, "_populate_file_size", lambda self: setattr(self, "total_file_size", 1024)), \ |
| 16 | + patch("oclp_r.support.network_handler.utilities.disable_sleep_while_running", lambda: None), \ |
| 17 | + patch("oclp_r.support.network_handler.utilities.enable_sleep_after_running", lambda: None): |
| 18 | + download = DownloadObject("https://example.com/demo.bin", str(target)) |
| 19 | + download._prepare_working_directory = lambda path: True |
| 20 | + download._should_use_multipart_download = lambda: True |
| 21 | + |
| 22 | + def fake_multipart_download(): |
| 23 | + download.download_complete = True |
| 24 | + |
| 25 | + download._download_multipart = fake_multipart_download |
| 26 | + |
| 27 | + download.download(spawn_thread=False) |
| 28 | + |
| 29 | + self.assertTrue(download.download_complete) |
| 30 | + self.assertEqual(download.status, DownloadStatus.COMPLETE) |
| 31 | + self.assertFalse(download.is_active()) |
| 32 | + |
| 33 | + |
| 34 | +if __name__ == "__main__": |
| 35 | + unittest.main() |
0 commit comments