@@ -89,6 +89,87 @@ def test_create_archive_request_composed_output_mode_with_transcription_error():
89
89
)
90
90
91
91
92
+ def test_create_archive_request_valid_quantization_parameter ():
93
+ """Test that quantization_parameter is accepted for composed archives with valid
94
+ values."""
95
+ request = CreateArchiveRequest (
96
+ session_id = "1_MX40NTY3NjYzMn5-MTQ4MTY3NjYzMn5" ,
97
+ has_audio = True ,
98
+ has_video = True ,
99
+ output_mode = OutputMode .COMPOSED ,
100
+ quantization_parameter = 25 ,
101
+ )
102
+ assert request .quantization_parameter == 25
103
+
104
+
105
+ def test_create_archive_request_quantization_parameter_boundary_values ():
106
+ """Test that quantization_parameter accepts boundary values (15 and 40)."""
107
+ # Test minimum value
108
+ request_min = CreateArchiveRequest (
109
+ session_id = "1_MX40NTY3NjYzMn5-MTQ4MTY3NjYzMn5" ,
110
+ has_audio = True ,
111
+ quantization_parameter = 15 ,
112
+ )
113
+ assert request_min .quantization_parameter == 15
114
+
115
+ # Test maximum value
116
+ request_max = CreateArchiveRequest (
117
+ session_id = "1_MX40NTY3NjYzMn5-MTQ4MTY3NjYzMn5" ,
118
+ has_audio = True ,
119
+ quantization_parameter = 40 ,
120
+ )
121
+ assert request_max .quantization_parameter == 40
122
+
123
+
124
+ def test_create_archive_request_quantization_parameter_invalid_low ():
125
+ """Test that quantization_parameter rejects values below 15."""
126
+ with raises (ValueError ):
127
+ CreateArchiveRequest (
128
+ session_id = "1_MX40NTY3NjYzMn5-MTQ4MTY3NjYzMn5" ,
129
+ has_audio = True ,
130
+ quantization_parameter = 14 ,
131
+ )
132
+
133
+
134
+ def test_create_archive_request_quantization_parameter_invalid_high ():
135
+ """Test that quantization_parameter rejects values above 40."""
136
+ with raises (ValueError ):
137
+ CreateArchiveRequest (
138
+ session_id = "1_MX40NTY3NjYzMn5-MTQ4MTY3NjYzMn5" ,
139
+ has_audio = True ,
140
+ quantization_parameter = 41 ,
141
+ )
142
+
143
+
144
+ def test_create_archive_request_individual_output_mode_with_quantization_parameter ():
145
+ """Test that quantization_parameter is rejected for individual archives."""
146
+ with raises (IndividualArchivePropertyError ):
147
+ CreateArchiveRequest (
148
+ session_id = "1_MX40NTY3NjYzMn5-MTQ4MTY3NjYzMn5" ,
149
+ has_audio = True ,
150
+ output_mode = OutputMode .INDIVIDUAL ,
151
+ quantization_parameter = 25 ,
152
+ )
153
+
154
+
155
+ def test_create_archive_request_serialization_with_quantization_parameter ():
156
+ """Test that quantization_parameter is properly serialized with the correct alias."""
157
+ request = CreateArchiveRequest (
158
+ session_id = "1_MX40NTY3NjYzMn5-MTQ4MTY3NjYzMn5" ,
159
+ has_audio = True ,
160
+ has_video = True ,
161
+ output_mode = OutputMode .COMPOSED ,
162
+ quantization_parameter = 30 ,
163
+ )
164
+
165
+ serialized = request .model_dump (by_alias = True , exclude_unset = True )
166
+ assert 'quantizationParameter' in serialized
167
+ assert serialized ['quantizationParameter' ] == 30
168
+ assert (
169
+ 'quantization_parameter' not in serialized
170
+ ) # Ensure Python field name is not used
171
+
172
+
92
173
def test_layout_custom_without_stylesheet ():
93
174
with raises (LayoutStylesheetError ):
94
175
ComposedLayout (type = LayoutType .CUSTOM )
@@ -194,6 +275,7 @@ def test_start_archive():
194
275
assert archive .name == 'first archive test'
195
276
assert archive .resolution == '1280x720'
196
277
assert archive .max_bitrate == 2_000_000
278
+ assert archive .quantization_parameter == 25
197
279
198
280
199
281
@responses .activate
@@ -215,6 +297,7 @@ def test_get_archive():
215
297
assert archive .status == 'started'
216
298
assert archive .name == 'first archive test'
217
299
assert archive .resolution == '1280x720'
300
+ assert archive .quantization_parameter == 25
218
301
219
302
220
303
@responses .activate
0 commit comments