import unittest from pydantic import ValidationError from B03_FileInput.B03_FileInput_Schema import FileUploadDescriptor from config.config_system import UPLOAD_MAX_MB class FileUploadDescriptorTest(unittest.TestCase): def test_file_upload_descriptor(self) -> None: descriptor = FileUploadDescriptor( original_filename="cloud_merged.LAS", size_bytes=1024, ) self.assertEqual(descriptor.original_filename, "cloud_merged.LAS") invalid_values = ( {"original_filename": "../cloud.las", "size_bytes": 1024}, {"original_filename": "nested/cloud.las", "size_bytes": 1024}, {"original_filename": "cloud.exe", "size_bytes": 1024}, { "original_filename": "cloud.las", "size_bytes": UPLOAD_MAX_MB * 1024 * 1024 + 1, }, {"original_filename": "cloud.las", "size_bytes": 0}, ) for invalid_value in invalid_values: with self.subTest(invalid_value=invalid_value): with self.assertRaises(ValidationError): FileUploadDescriptor(**invalid_value)