[ARVADOS] updated: 1f438358f952fe296bd6aebaa1f868ddb366fb7e
git at public.curoverse.com
git at public.curoverse.com
Thu Aug 21 15:08:36 EDT 2014
Summary of changes:
services/api/app/mailers/admin_notifier.rb | 2 +-
services/api/app/models/user.rb | 3 ++-
services/api/test/fixtures/repositories.yml | 5 +++++
services/api/test/unit/user_test.rb | 33 ++++++++++++++++++-----------
4 files changed, 29 insertions(+), 14 deletions(-)
via 1f438358f952fe296bd6aebaa1f868ddb366fb7e (commit)
from 0a658f812d1db5fed5ab9da8fd0b77fd57a33532 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit 1f438358f952fe296bd6aebaa1f868ddb366fb7e
Author: radhika <radhika at curoverse.com>
Date: Thu Aug 21 14:52:00 2014 -0400
3153: update tests to check for existing repo name
diff --git a/services/api/app/mailers/admin_notifier.rb b/services/api/app/mailers/admin_notifier.rb
index 2bb0aef..035072b 100644
--- a/services/api/app/mailers/admin_notifier.rb
+++ b/services/api/app/mailers/admin_notifier.rb
@@ -14,7 +14,7 @@ class AdminNotifier < ActionMailer::Base
if Rails.configuration.auto_setup_new_users
add_to_subject = @user.is_invited ? 'and setup' : ', but not setup'
end
-
+
mail(to: @recipients,
subject: "#{Rails.configuration.email_subject_prefix}New user created #{add_to_subject} notification"
)
diff --git a/services/api/app/models/user.rb b/services/api/app/models/user.rb
index 77da32c..5530eb6 100644
--- a/services/api/app/models/user.rb
+++ b/services/api/app/models/user.rb
@@ -438,8 +438,9 @@ class User < ArvadosModel
return true
else
username = derive_unique_username username
- end
+ end
end
+
# setup user
if !Rails.configuration.auto_setup_new_users_with_vm_uuid &&
!Rails.configuration.auto_setup_new_users_with_repository
diff --git a/services/api/test/fixtures/repositories.yml b/services/api/test/fixtures/repositories.yml
index 80682a3..d32152d 100644
--- a/services/api/test/fixtures/repositories.yml
+++ b/services/api/test/fixtures/repositories.yml
@@ -12,3 +12,8 @@ repository2:
uuid: zzzzz-s0uqq-382brsig8rp3667
owner_uuid: zzzzz-tpzed-xurymjxw79nv3jz # active user
name: foo2
+
+auto_setup_repository:
+ uuid: zzzzz-s0uqq-382brabc8rp3667
+ owner_uuid: zzzzz-tpzed-xurymjxw79nv3jz # active user
+ name: auto_setup_repo
diff --git a/services/api/test/unit/user_test.rb b/services/api/test/unit/user_test.rb
index c9be478..6402fb4 100644
--- a/services/api/test/unit/user_test.rb
+++ b/services/api/test/unit/user_test.rb
@@ -154,10 +154,10 @@ class UserTest < ActiveSupport::TestCase
[false, [], [], '^^incorrect_format at example.com', true, true, false],
- [false, 'active-notify at example.com', 'inactive-notify at example.com', 'foo at example.com', true, true, true], # existing repository name 'foo'
- [true, 'active-notify at example.com', 'inactive-notify at example.com', 'foo at example.com', true, false, true], # existing repository name 'foo'
- [false, 'active-notify at example.com', 'inactive-notify at example.com', 'foo at example.com', false, true, true], # existing repository name 'foo'
- [false, 'active-notify at example.com', 'inactive-notify at example.com', 'foo at example.com', false, false, true], # existing repository name 'foo', but we are not creating repo or login link
+ [false, 'active-notify at example.com', 'inactive-notify at example.com', 'auto_setup_repo at example.com', true, true, true], # existing repository name 'auto_setup_repo'
+ [true, 'active-notify at example.com', 'inactive-notify at example.com', 'auto_setup_repo at example.com', true, false, true], # existing repository name 'auto_setup_repo'
+ [false, 'active-notify at example.com', 'inactive-notify at example.com', 'auto_setup_repo at example.com', false, true, true], # existing repository name 'auto_setup_repo'
+ [false, 'active-notify at example.com', 'inactive-notify at example.com', 'auto_setup_repo at example.com', false, false, true], # existing repository name 'auto_setup_repo', but we are not creating repo or login link
[false, 'active-notify at example.com', 'inactive-notify at example.com', 'xyz_can_login_to_vm at example.com', true, true, true], # existing vm login name
[true, 'active-notify at example.com', 'inactive-notify at example.com', 'xyz_can_login_to_vm at example.com', true, false, true], # existing vm login name
@@ -479,15 +479,8 @@ class UserTest < ActiveSupport::TestCase
username = user.email.partition('@')[0] if email
- # check vm uuid
- vm_uuid = Rails.configuration.auto_setup_new_users_with_vm_uuid
- if vm_uuid
- verify_link_exists true, vm_uuid, user.uuid, 'permission', 'can_login', 'username', username
- else
- verify_link_exists false, vm_uuid, user.uuid, 'permission', 'can_login', 'username', username
- end
-
# check repo
+ repo_names = []
if Rails.configuration.auto_setup_new_users_with_repository
repos = Repository.where('name like ?', "%#{username}%")
assert_not_nil repos, 'repository not found'
@@ -495,9 +488,25 @@ class UserTest < ActiveSupport::TestCase
repo_uuids = []
repos.each do |repo|
repo_uuids << repo[:uuid]
+ repo_names << repo[:name]
end
+ if username == 'auto_setup_repo'
+ begin
+ repo_names.delete('auto_setup_repo')
+ ensure
+ assert_equal true, repo_names.any?, 'Repository name for username foo is not unique'
+ end
+ end
verify_link_exists true, repo_uuids, user.uuid, 'permission', 'can_manage', nil, nil
end
+
+ # check vm uuid
+ vm_uuid = Rails.configuration.auto_setup_new_users_with_vm_uuid
+ if vm_uuid
+ verify_link_exists true, vm_uuid, user.uuid, 'permission', 'can_login', 'username', (username == 'auto_setup_repo' ? repo_names.first : username)
+ else
+ verify_link_exists false, vm_uuid, user.uuid, 'permission', 'can_login', 'username', (username == 'auto_setup_repo' ? repo_names.first : username)
+ end
end
# check email notifications
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list