@@ -427,3 +427,106 @@ def test_get_serial_log_general_error(self, mock_get_serial_log):
427427 self .assertEqual (response .status_code , 500 )
428428 self .assertFalse (data ["success" ])
429429 self .assertEqual (data ["message" ], "Internal server error" )
430+
431+ @patch (
432+ "canonicalwebteam.store_api.publishergw.PublisherGW"
433+ + ".get_store_model_serial_logs"
434+ )
435+ def test_get_serial_log_with_time_range (self , mock_get_serial_log ):
436+ mock_serial_log = []
437+ mock_get_serial_log .return_value = mock_serial_log
438+ response = self .client .get (
439+ "/api/store/1/models/test-model/serial-log"
440+ "?start-time=2026-06-01T00:00:00Z"
441+ "&end-time=2026-06-30T23:59:59Z"
442+ )
443+ data = response .json
444+
445+ self .assertEqual (response .status_code , 200 )
446+ self .assertTrue (data ["success" ])
447+ self .assertEqual (data ["data" ], [])
448+
449+ mock_get_serial_log .assert_called_once ()
450+ # Arguments are passed positionally:
451+ # (session, store_id, model_name, start_time, end_time, page_size)
452+ self .assertEqual (
453+ mock_get_serial_log .call_args .args [3 ],
454+ "2026-06-01T00:00:00Z" ,
455+ )
456+ self .assertEqual (
457+ mock_get_serial_log .call_args .args [4 ],
458+ "2026-06-30T23:59:59Z" ,
459+ )
460+
461+ @patch (
462+ "canonicalwebteam.store_api.publishergw.PublisherGW"
463+ + ".get_store_model_serial_logs"
464+ )
465+ def test_get_serial_log_with_page_size (self , mock_get_serial_log ):
466+ mock_serial_log = [
467+ {
468+ "brand-id" : "test-brand-id" ,
469+ "created-at" : "2026-03-23T04:00:23.875000" ,
470+ "model-name" : "test-model" ,
471+ "serial" : "test-serial" ,
472+ }
473+ ]
474+ mock_get_serial_log .return_value = mock_serial_log
475+ response = self .client .get (
476+ "/api/store/1/models/test-model/serial-log?page-size=50"
477+ )
478+ data = response .json
479+
480+ self .assertEqual (response .status_code , 200 )
481+ self .assertTrue (data ["success" ])
482+ self .assertEqual (data ["data" ], mock_serial_log )
483+
484+ mock_get_serial_log .assert_called_once ()
485+ # Arguments are passed positionally:
486+ # (session, store_id, model_name, start_time, end_time, page_size)
487+ self .assertEqual (
488+ mock_get_serial_log .call_args .args [5 ],
489+ "50" ,
490+ )
491+
492+ @patch (
493+ "canonicalwebteam.store_api.publishergw.PublisherGW"
494+ + ".get_store_model_serial_logs"
495+ )
496+ def test_get_serial_log_with_all_parameters (self , mock_get_serial_log ):
497+ mock_serial_log = [
498+ {
499+ "brand-id" : "test-brand-id" ,
500+ "created-at" : "2026-03-23T04:00:23.875000" ,
501+ "model-name" : "test-model" ,
502+ "serial" : "test-serial" ,
503+ }
504+ ]
505+ mock_get_serial_log .return_value = mock_serial_log
506+ response = self .client .get (
507+ "/api/store/1/models/test-model/serial-log"
508+ "?start-time=2026-01-01T00:00:00Z"
509+ "&end-time=2026-12-31T23:59:59Z"
510+ "&page-size=25"
511+ )
512+ data = response .json
513+
514+ self .assertEqual (response .status_code , 200 )
515+ self .assertTrue (data ["success" ])
516+ self .assertEqual (data ["data" ], mock_serial_log )
517+
518+ mock_get_serial_log .assert_called_once ()
519+ # Arguments are passed positionally:
520+ # (session, store_id, model_name, start_time, end_time, page_size)
521+ self .assertEqual (
522+ mock_get_serial_log .call_args .args [3 ],
523+ "2026-01-01T00:00:00Z" ,
524+ )
525+ self .assertEqual (
526+ mock_get_serial_log .call_args .args [4 ],
527+ "2026-12-31T23:59:59Z" ,
528+ )
529+ self .assertEqual (
530+ mock_get_serial_log .call_args .args [5 ],
531+ "25" ,
532+ )
0 commit comments