@@ -78,9 +78,9 @@ def test_skips_conversion_when_already_course_key(self, processor, settings):
7878
7979 with patch ("openedx_ai_badges.processors.badge_image_upload_processor.update_course_run_asset" , mock_upload ), \
8080 patch ("openedx_ai_badges.processors.badge_image_upload_processor.get_static_content" , mock_get_static ), \
81- patch ( "openedx_ai_badges.processors.badge_image_upload_processor. CourseKey" ) as mock_ck :
81+ patch . object ( CourseKey , "from_string" ) as mock_from_string :
8282 processor .upload_image_to_assets (real_key , MINIMAL_PNG_B64 , BADGE_ID )
83- mock_ck . from_string .assert_not_called ()
83+ mock_from_string .assert_not_called ()
8484
8585 assert mock_upload .call_args [0 ][0 ] is real_key
8686
@@ -106,6 +106,18 @@ def test_returns_none_on_upload_failure(self, processor, settings):
106106
107107 assert url is None
108108
109+ def test_returns_none_when_image_exceeds_max_size (self , processor , settings ):
110+ settings .LMS_ROOT_URL = LMS_ROOT
111+ settings .OPENEDX_AI_BADGES_MAX_IMAGE_SIZE_BYTES = 1 # 1 byte limit
112+ mock_upload , mock_get_static = _make_upload_mock ()
113+
114+ with patch ("openedx_ai_badges.processors.badge_image_upload_processor.update_course_run_asset" , mock_upload ), \
115+ patch ("openedx_ai_badges.processors.badge_image_upload_processor.get_static_content" , mock_get_static ):
116+ url = processor .upload_image_to_assets (COURSE_ID_STR , MINIMAL_PNG_B64 , BADGE_ID )
117+
118+ assert url is None
119+ mock_upload .assert_not_called ()
120+
109121 def test_uploaded_file_has_correct_name_and_content_type (self , processor , settings ):
110122 settings .LMS_ROOT_URL = LMS_ROOT
111123 mock_upload , mock_get_static = _make_upload_mock ()
0 commit comments