@@ -106,6 +106,12 @@ def test_increment_warning_badges_no_updates(
106
106
monkeypatch .setattr (user1 , "has_badge" , lambda x : False )
107
107
108
108
reg = event1_with_reg .existing_registrations (user1 )[0 ]
109
+ reg2 = Registration (
110
+ user_id = user1 .id ,
111
+ status = RegistrationStatus .UnJustifiedAbsentee ,
112
+ level = RegistrationLevels .Normal ,
113
+ is_self = True ,
114
+ )
109
115
110
116
user1 .increment_warning_badges (reg )
111
117
@@ -125,8 +131,15 @@ def test_increment_warning_badges_no_updates(
125
131
lambda badge_ids : BadgeIds .UnjustifiedAbsenceWarning in badge_ids ,
126
132
)
127
133
134
+ # Same registration, should not double-count
128
135
user1 .increment_warning_badges (reg )
136
+ # Verify database operations were performed
137
+ assert len (session_monkeypatch ["add" ]) == 1 # New badge should be added
138
+ assert session_monkeypatch ["commit" ] == 1 # New commit should occur
139
+ assert session_monkeypatch ["rollback" ] == 0 # No rollback should occur
129
140
141
+ # other registration
142
+ user1 .increment_warning_badges (reg2 )
130
143
# Verify database operations were performed
131
144
assert len (session_monkeypatch ["add" ]) == 2 # New badge should be added
132
145
assert session_monkeypatch ["commit" ] == 2 # New commit should occur
@@ -182,11 +195,14 @@ def test_remove_sanction_badge(user1: User, event: Event):
182
195
event .registrations .append (reg2 )
183
196
event .registrations .append (reg3 )
184
197
185
- user1 .assign_badge (
186
- BadgeIds .UnjustifiedAbsenceWarning ,
187
- expiration_date = expiration_date ,
188
- registration = reg1 ,
189
- )
198
+ user1 .increment_warning_badges (reg1 )
199
+ assert not user1 .has_a_valid_suspended_badge ()
200
+ assert user1 .number_of_valid_warning_badges () == 1
201
+
202
+ user1 .increment_warning_badges (reg1 )
203
+ assert not user1 .has_a_valid_suspended_badge ()
204
+ assert user1 .number_of_valid_warning_badges () == 1
205
+
190
206
user1 .assign_badge (
191
207
BadgeIds .UnjustifiedAbsenceWarning ,
192
208
expiration_date = expiration_date ,
@@ -223,3 +239,8 @@ def test_remove_sanction_badge(user1: User, event: Event):
223
239
224
240
assert not user1 .has_a_valid_suspended_badge ()
225
241
assert user1 .number_of_valid_warning_badges () == 1
242
+
243
+ # no-op
244
+ user1 .remove_warning_badges (reg2 )
245
+ assert not user1 .has_a_valid_suspended_badge ()
246
+ assert user1 .number_of_valid_warning_badges () == 1
0 commit comments