1002
1002
self.message.set_sreg_args(nickname=existing_openid.user.username)
1003
1003
self.backend.authenticate(openid_response=self.message.to_response())
1005
@override_settings(OPENID_STRICT_USERNAMES=True)
1006
def test_auth_duplicate_username_handling_bypass_numbered_suffix(self):
1007
nickname = 'nickname87'
1008
existing_openid = self.make_user_openid(
1009
user=User.objects.create_user(nickname))
1011
def duplicate_username_handler(sender, **kwargs):
1012
existing_user = existing_openid.user
1013
existing_user.username += '00'
1014
existing_user.save()
1016
openid_duplicate_username.disconnect,
1017
duplicate_username_handler, sender=User, dispatch_uid='testing')
1018
openid_duplicate_username.connect(
1019
duplicate_username_handler, sender=User, weak=False,
1020
dispatch_uid='testing')
1022
self.message.set_sreg_args(nickname=existing_openid.user.username)
1023
user = self.backend.authenticate(
1024
openid_response=self.message.to_response())
1026
self.assertIsNotNone(user)
1027
self.assertNotEqual(user, existing_openid.user)
1029
user.username, nickname,
1030
'In strict mode, when conflicts are handled, the username must '
1031
'be kept unmodified without numbered suffixes.')