[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