@@ -344,6 +344,276 @@ def test_create_remodel_allowlist_general_error(
344344 self .assertEqual (data ["message" ], "An error occurred" )
345345
346346
347+ class TestUpdateRemodelAllowlist (TestModelServiceEndpoints ):
348+ @patch (
349+ "canonicalwebteam.store_api.publishergw.PublisherGW"
350+ + ".update_remodel_allowlist"
351+ )
352+ def test_update_remodel_allowlist_success (
353+ self , mock_update_remodel_allowlist
354+ ):
355+ mock_update_remodel_allowlist .return_value = None
356+
357+ payload = {
358+ "description" : "Updated remodel allowlist" ,
359+ "from-model" : "updated-from-model" ,
360+ "from-serial" : "updated-from-serial" ,
361+ "to-model" : "updated-to-model" ,
362+ }
363+
364+ response = self .client .patch (
365+ "/api/store/1/models/remodel-allowlist" , json = payload
366+ )
367+ data = response .json
368+
369+ self .assertEqual (response .status_code , 200 )
370+ self .assertTrue (data ["success" ])
371+ mock_update_remodel_allowlist .assert_called_once ()
372+
373+ @patch (
374+ "canonicalwebteam.store_api.publishergw.PublisherGW"
375+ + ".update_remodel_allowlist"
376+ )
377+ def test_update_remodel_allowlist_store_not_found (
378+ self , mock_update_remodel_allowlist
379+ ):
380+ mock_update_remodel_allowlist .side_effect = StoreApiResponseErrorList (
381+ "Store not found" , 404 , [{"message" : "Store not found" }]
382+ )
383+
384+ payload = {
385+ "description" : "Updated remodel allowlist" ,
386+ "from-model" : "updated-from-model" ,
387+ "to-model" : "updated-to-model" ,
388+ }
389+
390+ response = self .client .patch (
391+ "/api/store/999/models/remodel-allowlist" , json = payload
392+ )
393+ data = response .json
394+
395+ self .assertEqual (response .status_code , 404 )
396+ self .assertFalse (data ["success" ])
397+ self .assertEqual (data ["message" ], "Store not found" )
398+
399+ @patch (
400+ "canonicalwebteam.store_api.publishergw.PublisherGW"
401+ + ".update_remodel_allowlist"
402+ )
403+ def test_update_remodel_allowlist_models_not_found (
404+ self , mock_update_remodel_allowlist
405+ ):
406+ mock_update_remodel_allowlist .side_effect = StoreApiResourceNotFound (
407+ "Remodel allowlist not found" ,
408+ 404 ,
409+ [{"message" : "Remodel allowlist not found" }],
410+ )
411+
412+ payload = {
413+ "description" : "Updated remodel allowlist" ,
414+ "from-model" : "updated-from-model" ,
415+ "to-model" : "updated-to-model" ,
416+ }
417+
418+ response = self .client .patch (
419+ "/api/store/1/models/remodel-allowlist" , json = payload
420+ )
421+ data = response .json
422+
423+ self .assertEqual (response .status_code , 404 )
424+ self .assertFalse (data ["success" ])
425+ self .assertEqual (data ["message" ], "Remodel allowlist not found" )
426+
427+ @patch (
428+ "canonicalwebteam.store_api.publishergw.PublisherGW"
429+ + ".update_remodel_allowlist"
430+ )
431+ def test_update_remodel_allowlist_api_error (
432+ self , mock_update_remodel_allowlist
433+ ):
434+ mock_update_remodel_allowlist .side_effect = StoreApiResponseErrorList (
435+ "Internal server error" ,
436+ 500 ,
437+ [{"message" : "An error occurred" }],
438+ )
439+
440+ payload = {
441+ "description" : "Updated remodel allowlist" ,
442+ "from-model" : "updated-from-model" ,
443+ "to-model" : "updated-to-model" ,
444+ }
445+
446+ response = self .client .patch (
447+ "/api/store/1/models/remodel-allowlist" , json = payload
448+ )
449+ data = response .json
450+
451+ self .assertEqual (response .status_code , 500 )
452+ self .assertFalse (data ["success" ])
453+ self .assertEqual (data ["message" ], "An error occurred" )
454+
455+ @patch (
456+ "canonicalwebteam.store_api.publishergw.PublisherGW"
457+ + ".update_remodel_allowlist"
458+ )
459+ def test_update_remodel_allowlist_general_exception (
460+ self , mock_update_remodel_allowlist
461+ ):
462+ mock_update_remodel_allowlist .side_effect = Exception (
463+ "Unexpected error"
464+ )
465+
466+ payload = {
467+ "description" : "Updated remodel allowlist" ,
468+ "from-model" : "updated-from-model" ,
469+ "to-model" : "updated-to-model" ,
470+ "from-serial" : "test-serial" ,
471+ }
472+
473+ response = self .client .patch (
474+ "/api/store/1/models/remodel-allowlist" , json = payload
475+ )
476+ data = response .json
477+
478+ self .assertEqual (response .status_code , 500 )
479+ self .assertFalse (data ["success" ])
480+ self .assertEqual (data ["message" ], "An error occurred" )
481+
482+
483+ class TestDeleteRemodelAllowlist (TestModelServiceEndpoints ):
484+ @patch (
485+ "canonicalwebteam.store_api.publishergw.PublisherGW"
486+ + ".delete_remodel_allowlist"
487+ )
488+ def test_delete_remodel_allowlist_success (
489+ self , mock_delete_remodel_allowlist
490+ ):
491+ mock_delete_remodel_allowlist .return_value = None
492+
493+ payload = {
494+ "from-model" : "test-from-model" ,
495+ "from-serial" : "test-from-serial" ,
496+ "to-model" : "test-to-model" ,
497+ }
498+
499+ response = self .client .delete (
500+ "/api/store/1/models/remodel-allowlist" , json = payload
501+ )
502+ data = response .json
503+
504+ self .assertEqual (response .status_code , 200 )
505+ self .assertTrue (data ["success" ])
506+ mock_delete_remodel_allowlist .assert_called_once ()
507+
508+ @patch (
509+ "canonicalwebteam.store_api.publishergw.PublisherGW"
510+ + ".delete_remodel_allowlist"
511+ )
512+ def test_delete_remodel_allowlist_store_not_found (
513+ self , mock_delete_remodel_allowlist
514+ ):
515+ mock_delete_remodel_allowlist .side_effect = StoreApiResponseErrorList (
516+ "Store not found" , 404 , [{"message" : "Store not found" }]
517+ )
518+
519+ payload = {
520+ "from-model" : "test-from-model" ,
521+ "from-serial" : "test-from-serial" ,
522+ "to-model" : "test-to-model" ,
523+ }
524+
525+ response = self .client .delete (
526+ "/api/store/999/models/remodel-allowlist" , json = payload
527+ )
528+ data = response .json
529+
530+ self .assertEqual (response .status_code , 404 )
531+ self .assertFalse (data ["success" ])
532+ self .assertEqual (data ["message" ], "Store not found" )
533+
534+ @patch (
535+ "canonicalwebteam.store_api.publishergw.PublisherGW"
536+ + ".delete_remodel_allowlist"
537+ )
538+ def test_delete_remodel_allowlist_allowlist_not_found (
539+ self , mock_delete_remodel_allowlist
540+ ):
541+ mock_delete_remodel_allowlist .side_effect = StoreApiResourceNotFound (
542+ "Remodel allowlist not found" ,
543+ 404 ,
544+ [{"message" : "Remodel allowlist not found" }],
545+ )
546+
547+ payload = {
548+ "from-model" : "test-from-model" ,
549+ "from-serial" : "test-from-serial" ,
550+ "to-model" : "test-to-model" ,
551+ }
552+
553+ response = self .client .delete (
554+ "/api/store/1/models/remodel-allowlist" , json = payload
555+ )
556+ data = response .json
557+
558+ self .assertEqual (response .status_code , 404 )
559+ self .assertFalse (data ["success" ])
560+ self .assertEqual (data ["message" ], "Remodel allowlist not found" )
561+
562+ @patch (
563+ "canonicalwebteam.store_api.publishergw.PublisherGW"
564+ + ".delete_remodel_allowlist"
565+ )
566+ def test_delete_remodel_allowlist_api_error (
567+ self , mock_delete_remodel_allowlist
568+ ):
569+ mock_delete_remodel_allowlist .side_effect = StoreApiResponseErrorList (
570+ "Internal server error" ,
571+ 500 ,
572+ [{"message" : "An error occurred" }],
573+ )
574+
575+ payload = {
576+ "from-model" : "test-from-model" ,
577+ "from-serial" : "test-from-serial" ,
578+ "to-model" : "test-to-model" ,
579+ }
580+
581+ response = self .client .delete (
582+ "/api/store/1/models/remodel-allowlist" , json = payload
583+ )
584+ data = response .json
585+
586+ self .assertEqual (response .status_code , 500 )
587+ self .assertFalse (data ["success" ])
588+ self .assertEqual (data ["message" ], "An error occurred" )
589+
590+ @patch (
591+ "canonicalwebteam.store_api.publishergw.PublisherGW"
592+ + ".delete_remodel_allowlist"
593+ )
594+ def test_delete_remodel_allowlist_general_exception (
595+ self , mock_delete_remodel_allowlist
596+ ):
597+ mock_delete_remodel_allowlist .side_effect = Exception (
598+ "Unexpected error"
599+ )
600+
601+ payload = {
602+ "from-model" : "test-from-model" ,
603+ "from-serial" : "test-serial" ,
604+ "to-model" : "test-to-model" ,
605+ }
606+
607+ response = self .client .delete (
608+ "/api/store/1/models/remodel-allowlist" , json = payload
609+ )
610+ data = response .json
611+
612+ self .assertEqual (response .status_code , 500 )
613+ self .assertFalse (data ["success" ])
614+ self .assertEqual (data ["message" ], "An error occurred" )
615+
616+
347617class TestGetSerialLog (TestModelServiceEndpoints ):
348618 @patch (
349619 "canonicalwebteam.store_api.publishergw.PublisherGW"
0 commit comments