9944: Tweak centos6 Dockerfiles to fall back to mirror if repoforge main is
[arvados.git] / services / api / test / unit / container_request_test.rb
index 97663cf448bea3ee9a71315aa2fb83fbb3960dd8..ebd6a5a19adfec42eacd7bd0bccf9ab93173aa3a 100644 (file)
@@ -58,30 +58,37 @@ class ContainerRequestTest < ActiveSupport::TestCase
     {"vcpus" => 1, "ram" => nil},
     {"vcpus" => 0, "ram" => 123},
     {"vcpus" => "1", "ram" => "123"}
-  ].each do |invalid_constraint|
-    test "Create with #{invalid_constraint}" do
+  ].each do |invalid_constraints|
+    test "Create with #{invalid_constraints}" do
       set_user_from_auth :active
       assert_raises(ActiveRecord::RecordInvalid) do
         cr = create_minimal_req!(state: "Committed",
                                  priority: 1,
-                                 runtime_constraints: invalid_constraint)
+                                 runtime_constraints: invalid_constraints)
         cr.save!
       end
     end
 
-    test "Update with #{invalid_constraint}" do
+    test "Update with #{invalid_constraints}" do
       set_user_from_auth :active
       cr = create_minimal_req!(state: "Uncommitted", priority: 1)
       cr.save!
       assert_raises(ActiveRecord::RecordInvalid) do
         cr = ContainerRequest.find_by_uuid cr.uuid
         cr.update_attributes!(state: "Committed",
-                              runtime_constraints: invalid_constraint)
+                              runtime_constraints: invalid_constraints)
       end
     end
   end
 
-  test "Update with valid constraint" do
+  test "Update from fixture" do
+    set_user_from_auth :active
+    cr = ContainerRequest.find_by_uuid(container_requests(:running).uuid)
+    cr.update_attributes!(description: "New description")
+    assert_equal "New description", cr.description
+  end
+
+  test "Update with valid runtime constraints" do
       set_user_from_auth :active
       cr = create_minimal_req!(state: "Uncommitted", priority: 1)
       cr.save!
@@ -329,7 +336,7 @@ class ContainerRequestTest < ActiveSupport::TestCase
       },
     }
     cr = ContainerRequest.new(mounts: m)
-    assert_raises(ActiveRecord::RecordNotFound) do
+    assert_raises(ArvadosModel::UnresolvableContainerError) do
       cr.send :mounts_for_container
     end
   end
@@ -374,12 +381,18 @@ class ContainerRequestTest < ActiveSupport::TestCase
    'ENOEXIST',
    'arvados/apitestfixture:ENOEXIST',
   ].each do |img|
-    test "container_image_for_container(#{img.inspect}) => 404" do
+    test "container_image_for_container(#{img.inspect}) => 422" do
       set_user_from_auth :active
       cr = ContainerRequest.new(container_image: img)
-      assert_raises(ActiveRecord::RecordNotFound) do
+      assert_raises(ArvadosModel::UnresolvableContainerError) do
         cr.send :container_image_for_container
       end
     end
   end
+
+  test "requestor can retrieve container owned by dispatch" do
+    assert_not_empty Container.readable_by(users(:admin)).where(uuid: containers(:running).uuid)
+    assert_not_empty Container.readable_by(users(:active)).where(uuid: containers(:running).uuid)
+    assert_empty Container.readable_by(users(:spectator)).where(uuid: containers(:running).uuid)
+  end
 end