@@ -427,3 +427,142 @@ 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,
487+ # end_time, page_size, cursor
488+ self .assertEqual (
489+ mock_get_serial_log .call_args .args [5 ],
490+ "50" ,
491+ )
492+
493+ @patch (
494+ "canonicalwebteam.store_api.publishergw.PublisherGW"
495+ + ".get_store_model_serial_logs"
496+ )
497+ def test_get_serial_log_with_next_page (self , mock_get_serial_log ):
498+ mock_serial_log = [
499+ {
500+ "brand-id" : "test-brand-id" ,
501+ "created-at" : "2026-03-23T04:00:23.875000" ,
502+ "model-name" : "test-model" ,
503+ "serial" : "test-serial" ,
504+ }
505+ ]
506+ mock_get_serial_log .return_value = mock_serial_log
507+ response = self .client .get (
508+ "/api/store/1/models/test-model/serial-log?next-page=nextpage"
509+ )
510+ data = response .json
511+
512+ self .assertEqual (response .status_code , 200 )
513+ self .assertTrue (data ["success" ])
514+ self .assertEqual (data ["data" ], mock_serial_log )
515+
516+ mock_get_serial_log .assert_called_once ()
517+ # Arguments are passed positionally:
518+ # session, store_id, model_name, start_time,
519+ # end_time, page_size, cursor
520+ self .assertEqual (
521+ mock_get_serial_log .call_args .args [6 ],
522+ "nextpage" ,
523+ )
524+
525+ @patch (
526+ "canonicalwebteam.store_api.publishergw.PublisherGW"
527+ + ".get_store_model_serial_logs"
528+ )
529+ def test_get_serial_log_with_all_parameters (self , mock_get_serial_log ):
530+ mock_serial_log = [
531+ {
532+ "brand-id" : "test-brand-id" ,
533+ "created-at" : "2026-03-23T04:00:23.875000" ,
534+ "model-name" : "test-model" ,
535+ "serial" : "test-serial" ,
536+ }
537+ ]
538+ mock_get_serial_log .return_value = mock_serial_log
539+ response = self .client .get (
540+ "/api/store/1/models/test-model/serial-log"
541+ "?start-time=2026-01-01T00:00:00Z"
542+ "&end-time=2026-12-31T23:59:59Z"
543+ "&page-size=25"
544+ "&next-page=nextpage"
545+ )
546+ data = response .json
547+
548+ self .assertEqual (response .status_code , 200 )
549+ self .assertTrue (data ["success" ])
550+ self .assertEqual (data ["data" ], mock_serial_log )
551+
552+ mock_get_serial_log .assert_called_once ()
553+ # Arguments are passed positionally:
554+ # session, store_id, model_name, start_time,
555+ # end_time, page_size, cursor
556+ self .assertEqual (
557+ mock_get_serial_log .call_args .args [3 ],
558+ "2026-01-01T00:00:00Z" ,
559+ )
560+ self .assertEqual (
561+ mock_get_serial_log .call_args .args [4 ],
562+ "2026-12-31T23:59:59Z" ,
563+ )
564+ self .assertEqual (
565+ mock_get_serial_log .call_args .args [5 ],
566+ "25" ,
567+ )
568+ self .assertEqual (mock_get_serial_log .call_args .args [6 ], "nextpage" )
0 commit comments