@@ -391,33 +391,66 @@ def test_uses_seer_project_preferences_if_available(
391391
392392@django_db_all
393393class TestScheduleContextEngineIndexingTasks (TestCase ):
394+ @mock .patch ("sentry.tasks.seer.context_engine_index.index_repos.apply_async" )
394395 @mock .patch ("sentry.tasks.seer.context_engine_index.build_service_map.apply_async" )
395396 @mock .patch ("sentry.tasks.seer.context_engine_index.index_org_project_knowledge.apply_async" )
396397 @mock .patch (
397398 "sentry.tasks.seer.context_engine_index.get_allowed_org_ids_context_engine_indexing"
398399 )
399- def test_dispatches_for_allowed_orgs (self , mock_get_orgs , mock_index , mock_build ):
400+ def test_dispatches_for_allowed_orgs (
401+ self , mock_get_orgs , mock_index , mock_build , mock_index_repos
402+ ):
400403 org1 = self .create_organization ()
401404 org2 = self .create_organization ()
402405 mock_get_orgs .return_value = [org1 .id , org2 .id ]
403406
404- with override_options (
405- {
406- "explorer.context_engine_indexing.enable" : True ,
407- }
408- ):
409- schedule_context_engine_indexing_tasks ()
407+ # Freeze to a Wednesday so index_repos is not called
408+ with freeze_time ("2024-01-10 12:00:00" ):
409+ with override_options (
410+ {
411+ "explorer.context_engine_indexing.enable" : True ,
412+ }
413+ ):
414+ schedule_context_engine_indexing_tasks ()
410415
411416 assert mock_index .call_count == 2
412417 assert mock_build .call_count == 2
418+ mock_index_repos .assert_not_called ()
413419 dispatched_index_ids = [c [1 ]["args" ][0 ] for c in mock_index .call_args_list ]
414420 assert dispatched_index_ids == [org1 .id , org2 .id ]
415421
422+ @mock .patch ("sentry.tasks.seer.context_engine_index.index_repos.apply_async" )
423+ @mock .patch ("sentry.tasks.seer.context_engine_index.build_service_map.apply_async" )
424+ @mock .patch ("sentry.tasks.seer.context_engine_index.index_org_project_knowledge.apply_async" )
425+ @mock .patch (
426+ "sentry.tasks.seer.context_engine_index.get_allowed_org_ids_context_engine_indexing"
427+ )
428+ def test_dispatches_index_repos_on_sunday (
429+ self , mock_get_orgs , mock_index , mock_build , mock_index_repos
430+ ):
431+ org1 = self .create_organization ()
432+ mock_get_orgs .return_value = [org1 .id ]
433+
434+ # Freeze to a Sunday so index_repos is called
435+ with freeze_time ("2024-01-14 12:00:00" ):
436+ with override_options (
437+ {
438+ "explorer.context_engine_indexing.enable" : True ,
439+ }
440+ ):
441+ schedule_context_engine_indexing_tasks ()
442+
443+ assert mock_index .call_count == 1
444+ assert mock_build .call_count == 1
445+ mock_index_repos .assert_called_once_with (args = [org1 .id ])
446+
447+ @mock .patch ("sentry.tasks.seer.context_engine_index.index_repos.apply_async" )
416448 @mock .patch ("sentry.tasks.seer.context_engine_index.build_service_map.apply_async" )
417449 @mock .patch ("sentry.tasks.seer.context_engine_index.index_org_project_knowledge.apply_async" )
418- def test_noop_when_no_allowed_orgs (self , mock_index , mock_build ):
450+ def test_noop_when_no_allowed_orgs (self , mock_index , mock_build , mock_index_repos ):
419451 with override_options ({"explorer.context_engine_indexing.enable" : True }):
420452 schedule_context_engine_indexing_tasks ()
421453
422454 mock_index .assert_not_called ()
423455 mock_build .assert_not_called ()
456+ mock_index_repos .assert_not_called ()
0 commit comments