99from moto import mock_s3
1010
1111from learning_resources .conftest import OCW_TEST_PREFIX , setup_s3_ocw
12- from learning_resources .constants import DEPARTMENTS
12+ from learning_resources .constants import DEPARTMENTS , LearningResourceDelivery
1313from learning_resources .etl .constants import CourseNumberType , ETLSource
1414from learning_resources .etl .ocw import (
1515 transform_content_files ,
@@ -174,19 +174,37 @@ def test_transform_content_file_needs_text_update(
174174 "term" ,
175175 "year" ,
176176 "expected_id" ,
177+ "hide_download" ,
177178 ),
178179 [
179- ("legacy-uid" , None , "legacyuid" , False , "Spring" , "2005" , "16.01+spring_2005" ),
180- (None , "site-uid" , "siteuid" , True , "" , 2005 , "16.01_2005" ),
181- (None , "site-uid" , "siteuid" , True , "Fall" , 2005 , "16.01+fall_2005" ),
182- (None , "site-uid" , "siteuid" , True , "Fall" , None , "16.01+fall" ),
183- (None , "site-uid" , "siteuid" , True , "" , "" , "16.01" ),
184- (None , "site-uid" , "siteuid" , True , None , None , "16.01" ),
185- (None , None , None , True , "Spring" , "2005" , None ),
180+ (
181+ "legacy-uid" ,
182+ None ,
183+ "legacyuid" ,
184+ False ,
185+ "Spring" ,
186+ "2005" ,
187+ "16.01+spring_2005" ,
188+ False ,
189+ ),
190+ (None , "site-uid" , "siteuid" , True , "" , 2005 , "16.01_2005" , True ),
191+ (None , "site-uid" , "siteuid" , True , "Fall" , 2005 , "16.01+fall_2005" , None ),
192+ (None , "site-uid" , "siteuid" , True , "Fall" , None , "16.01+fall" , False ),
193+ (None , "site-uid" , "siteuid" , True , "" , "" , "16.01" , True ),
194+ (None , "site-uid" , "siteuid" , True , None , None , "16.01" , False ),
195+ (None , None , None , True , "Spring" , "2005" , None , None ),
186196 ],
187197)
188198def test_transform_course ( # noqa: PLR0913
189- settings , legacy_uid , site_uid , expected_uid , has_extra_num , term , year , expected_id
199+ settings ,
200+ legacy_uid ,
201+ site_uid ,
202+ expected_uid ,
203+ has_extra_num ,
204+ term ,
205+ year ,
206+ expected_id ,
207+ hide_download ,
190208):
191209 """transform_course should return expected data"""
192210 settings .OCW_BASE_URL = "http://test.edu/"
@@ -201,17 +219,22 @@ def test_transform_course( # noqa: PLR0913
201219 course_json ["year" ] = year
202220 course_json ["legacy_uid" ] = legacy_uid
203221 course_json ["site_uid" ] = site_uid
222+ course_json ["hide_download" ] = hide_download
204223 course_json ["extra_course_numbers" ] = "1, 2" if has_extra_num else None
205224 extracted_json = {
206225 ** course_json ,
207226 "last_modified" : now_in_utc (),
208227 "slug" : "slug" ,
209228 "url" : "http://test.edu/slug" ,
210229 }
230+ expected_delivery = [LearningResourceDelivery .online .name ] + (
231+ [] if hide_download else [LearningResourceDelivery .offline .name ]
232+ )
211233 transformed_json = transform_course (extracted_json )
212234 if expected_uid :
213235 assert transformed_json ["readable_id" ] == expected_id
214236 assert transformed_json ["etl_source" ] == ETLSource .ocw .name
237+ assert transformed_json ["delivery" ] == expected_delivery
215238 assert transformed_json ["runs" ][0 ]["run_id" ] == expected_uid
216239 assert transformed_json ["runs" ][0 ]["level" ] == ["undergraduate" , "high_school" ]
217240 assert transformed_json ["runs" ][0 ]["semester" ] == (term if term else None )
0 commit comments