@@ -1118,19 +1118,16 @@ def _mock_repo(self, name: str = "sentry", external_id: str = "123") -> dict:
11181118 @patch ("sentry.seer.autofix.autofix.set_project_seer_preference" )
11191119 @patch ("sentry.seer.autofix.autofix.get_project_seer_preferences" )
11201120 def test_returns_existing_preference (self , mock_get_prefs , mock_set_pref , mock_write_sentry ):
1121- existing_repos = [self ._mock_repo ("seer" , "999" )]
11221121 mock_get_prefs .return_value = SeerRawPreferenceResponse (
11231122 preference = SeerProjectPreference (
11241123 organization_id = self .organization .id ,
11251124 project_id = self .project .id ,
1126- repositories = existing_repos ,
1125+ repositories = [ self . _mock_repo ( "seer" , "999" )] ,
11271126 automated_run_stopping_point = "root_cause" ,
11281127 )
11291128 )
11301129
1131- result = _resolve_project_preference (
1132- self .organization , self .project , [self ._mock_repo ("sentry" , "123" )]
1133- )
1130+ result = _resolve_project_preference (self .organization , self .project )
11341131
11351132 assert result is not None
11361133 assert len (result .repositories ) == 1
@@ -1143,7 +1140,7 @@ def test_returns_existing_preference(self, mock_get_prefs, mock_set_pref, mock_w
11431140 @patch ("sentry.seer.autofix.autofix.write_preference_to_sentry_db" )
11441141 @patch ("sentry.seer.autofix.autofix.set_project_seer_preference" )
11451142 @patch ("sentry.seer.autofix.autofix.get_project_seer_preferences" )
1146- def test_empty_repos_falls_back_to_code_mappings_and_preserves_settings (
1143+ def test_returns_existing_preference_with_empty_repos (
11471144 self , mock_get_prefs , mock_set_pref , mock_write_sentry
11481145 ):
11491146 mock_get_prefs .return_value = SeerRawPreferenceResponse (
@@ -1161,56 +1158,36 @@ def test_empty_repos_falls_back_to_code_mappings_and_preserves_settings(
11611158 )
11621159 )
11631160
1164- fallback_repos = [self ._mock_repo ("sentry" , "123" )]
1165- result = _resolve_project_preference (self .organization , self .project , fallback_repos )
1161+ result = _resolve_project_preference (self .organization , self .project )
11661162
11671163 assert result is not None
1168- assert len (result .repositories ) == 1
1169- assert result .repositories [0 ].name == "sentry"
1164+ assert result .repositories == []
11701165 assert result .automated_run_stopping_point == "root_cause"
11711166 assert result .automation_handoff is not None
11721167 assert result .automation_handoff .handoff_point == "root_cause"
11731168 assert result .automation_handoff .target == "cursor_background_agent"
11741169 assert result .automation_handoff .integration_id == 42
11751170 assert result .automation_handoff .auto_create_pr is True
1176- mock_set_pref .assert_called_once ()
1177- mock_write_sentry .assert_called_once ()
1171+ mock_set_pref .assert_not_called ()
1172+ mock_write_sentry .assert_not_called ()
11781173
11791174 @patch ("sentry.seer.autofix.autofix.write_preference_to_sentry_db" )
11801175 @patch ("sentry.seer.autofix.autofix.set_project_seer_preference" )
11811176 @patch ("sentry.seer.autofix.autofix.get_project_seer_preferences" )
1182- def test_no_preference_falls_back_to_code_mappings_and_org_defaults (
1177+ def test_no_preference_creates_one_with_org_defaults (
11831178 self , mock_get_prefs , mock_set_pref , mock_write_sentry
11841179 ):
11851180 mock_get_prefs .return_value = SeerRawPreferenceResponse (preference = None )
11861181 self .organization .update_option ("sentry:default_automated_run_stopping_point" , "open_pr" )
11871182 self .organization .update_option ("sentry:auto_open_prs" , True )
11881183
1189- code_mapping_repos = [self ._mock_repo ("sentry" , "123" )]
1190- result = _resolve_project_preference (self .organization , self .project , code_mapping_repos )
1184+ result = _resolve_project_preference (self .organization , self .project )
11911185
11921186 assert result is not None
11931187 assert result .project_id == self .project .id
11941188 assert result .organization_id == self .organization .id
1195- assert len (result .repositories ) == 1
1196- assert result .repositories [0 ].name == "sentry"
1197- assert result .repositories [0 ].external_id == "123"
1198- assert result .automated_run_stopping_point == "open_pr"
1199- mock_set_pref .assert_called_once ()
1200- mock_write_sentry .assert_called_once ()
1201-
1202- @patch ("sentry.seer.autofix.autofix.write_preference_to_sentry_db" )
1203- @patch ("sentry.seer.autofix.autofix.set_project_seer_preference" )
1204- @patch ("sentry.seer.autofix.autofix.get_project_seer_preferences" )
1205- def test_creates_preference_with_empty_repos_when_no_fallback (
1206- self , mock_get_prefs , mock_set_pref , mock_write_sentry
1207- ):
1208- mock_get_prefs .return_value = SeerRawPreferenceResponse (preference = None )
1209-
1210- result = _resolve_project_preference (self .organization , self .project , [])
1211-
1212- assert result is not None
12131189 assert result .repositories == []
1190+ assert result .automated_run_stopping_point == "open_pr"
12141191 mock_set_pref .assert_called_once ()
12151192 mock_write_sentry .assert_called_once ()
12161193
@@ -1220,7 +1197,7 @@ def test_creates_preference_with_empty_repos_when_no_fallback(
12201197 def test_returns_none_on_get_api_error (self , mock_get_prefs , mock_set_pref , mock_write_sentry ):
12211198 mock_get_prefs .side_effect = SeerApiError ("test error" , 500 )
12221199
1223- result = _resolve_project_preference (self .organization , self .project , [ self . _mock_repo ()] )
1200+ result = _resolve_project_preference (self .organization , self .project )
12241201
12251202 assert result is None
12261203 mock_set_pref .assert_not_called ()
@@ -1233,7 +1210,7 @@ def test_returns_none_on_set_api_error(self, mock_get_prefs, mock_set_pref, mock
12331210 mock_get_prefs .return_value = SeerRawPreferenceResponse (preference = None )
12341211 mock_set_pref .side_effect = SeerApiError ("test error" , 500 )
12351212
1236- result = _resolve_project_preference (self .organization , self .project , [ self . _mock_repo ()] )
1213+ result = _resolve_project_preference (self .organization , self .project )
12371214
12381215 assert result is None
12391216 mock_write_sentry .assert_not_called ()
@@ -1247,10 +1224,11 @@ def test_returns_preference_on_sentry_db_write_error(
12471224 mock_get_prefs .return_value = SeerRawPreferenceResponse (preference = None )
12481225 mock_write_sentry .side_effect = Exception ()
12491226
1250- result = _resolve_project_preference (self .organization , self .project , [ self . _mock_repo ()] )
1227+ result = _resolve_project_preference (self .organization , self .project )
12511228
12521229 assert result is not None
12531230 assert result .project_id == self .project .id
1231+ assert result .repositories == []
12541232 mock_set_pref .assert_called_once ()
12551233 mock_write_sentry .assert_called_once ()
12561234
@@ -1263,17 +1241,14 @@ def test_reads_from_sentry_db(
12631241 self , mock_get_prefs , mock_read_db , mock_set_pref , mock_write_sentry
12641242 ):
12651243 """When feature flag enabled, reads preferences from Sentry DB instead of Seer API."""
1266- existing_repos = [self ._mock_repo ("seer" , "999" )]
12671244 mock_read_db .return_value = SeerProjectPreference (
12681245 organization_id = self .organization .id ,
12691246 project_id = self .project .id ,
1270- repositories = existing_repos ,
1247+ repositories = [ self . _mock_repo ( "seer" , "999" )] ,
12711248 automated_run_stopping_point = "root_cause" ,
12721249 )
12731250
1274- result = _resolve_project_preference (
1275- self .organization , self .project , [self ._mock_repo ("sentry" , "123" )]
1276- )
1251+ result = _resolve_project_preference (self .organization , self .project )
12771252
12781253 assert result is not None
12791254 assert result .repositories [0 ].name == "seer"
0 commit comments