[ARVADOS] created: 7f5e5b88c9161cbec69725108e438aa1532acaf5
Git user
git at public.curoverse.com
Wed Jun 29 15:54:19 EDT 2016
at 7f5e5b88c9161cbec69725108e438aa1532acaf5 (commit)
commit 7f5e5b88c9161cbec69725108e438aa1532acaf5
Author: Tom Clegg <tom at curoverse.com>
Date: Wed Jun 29 15:53:27 2016 -0400
9518: Fix username conflict resolution.
diff --git a/services/api/app/models/user.rb b/services/api/app/models/user.rb
index 553a3be..18d33a6 100644
--- a/services/api/app/models/user.rb
+++ b/services/api/app/models/user.rb
@@ -312,8 +312,8 @@ class User < ArvadosModel
self.class.
where("username like '#{pattern}'").
select(:username).
- order(username: :asc).
- find_each do |other_user|
+ order('username asc').
+ each do |other_user|
if other_user.username > next_username
break
elsif other_user.username == next_username
diff --git a/services/api/test/unit/user_test.rb b/services/api/test/unit/user_test.rb
index b96645c..4df6cc0 100644
--- a/services/api/test/unit/user_test.rb
+++ b/services/api/test/unit/user_test.rb
@@ -93,6 +93,16 @@ class UserTest < ActiveSupport::TestCase
test "new username set with deduplication" do
name = users(:active).username
check_new_username_setting(name, "#{name}2")
+ check_new_username_setting(name, "#{name}3")
+ # Insert some out-of-order conflicts, to ensure our "sort by
+ # username, stop when we see a hole" strategy doesn't depend on
+ # insert order.
+ check_new_username_setting("#{name}13", "#{name}13")
+ check_new_username_setting("#{name}5", "#{name}5")
+ check_new_username_setting(name, "#{name}4")
+ 6.upto(12).each do |n|
+ check_new_username_setting(name, "#{name}#{n}")
+ end
end
test "new username set avoiding blacklist" do
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list