X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/d9a6e1a21c215def927b78231f9c10b388ac6b47..93f3066d3d261128e57818544c3f31a222f52082:/services/api/test/unit/collection_test.rb diff --git a/services/api/test/unit/collection_test.rb b/services/api/test/unit/collection_test.rb index 70645615a0..8b8edbc153 100644 --- a/services/api/test/unit/collection_test.rb +++ b/services/api/test/unit/collection_test.rb @@ -185,12 +185,29 @@ class CollectionTest < ActiveSupport::TestCase c.reload assert_equal 'foobar', c.name assert_equal 2, c.version + # Simulate a keep-balance run and trigger a new versionable update + # This tests bug #18005 + assert_nil c.replication_confirmed + assert_nil c.replication_confirmed_at + # Updates without validations/callbacks + c.update_column('modified_at', fifteen_min_ago) + c.update_column('replication_confirmed_at', Time.now) + c.update_column('replication_confirmed', 2) + c.reload + assert_equal fifteen_min_ago.to_i, c.modified_at.to_i + assert_not_nil c.replication_confirmed_at + assert_not_nil c.replication_confirmed + # Make the versionable update + c.update_attributes!({'name' => 'foobarbaz'}) + c.reload + assert_equal 'foobarbaz', c.name + assert_equal 3, c.version end end test "preserve_version updates" do Rails.configuration.Collections.CollectionVersioning = true - Rails.configuration.Collections.PreserveVersionIfIdle = 3600 + Rails.configuration.Collections.PreserveVersionIfIdle = -1 # disabled act_as_user users(:active) do # Set up initial collection c = create_collection 'foo', Encoding::US_ASCII @@ -227,7 +244,10 @@ class CollectionTest < ActiveSupport::TestCase assert_equal 2, c.replication_desired assert_equal true, c.preserve_version # This is a versionable update - c.update_attributes!({'name' => 'foobar'}) + c.update_attributes!({ + 'preserve_version' => false, + 'name' => 'foobar' + }) c.reload assert_equal 3, c.version assert_equal false, c.preserve_version @@ -690,6 +710,19 @@ class CollectionTest < ActiveSupport::TestCase end end + test "storage_classes_desired default respects config" do + saved = Rails.configuration.DefaultStorageClasses + Rails.configuration.DefaultStorageClasses = ["foo"] + begin + act_as_user users(:active) do + c = Collection.create! + assert_equal ["foo"], c.storage_classes_desired + end + ensure + Rails.configuration.DefaultStorageClasses = saved + end + end + test "storage_classes_desired cannot be empty" do act_as_user users(:active) do c = collections(:collection_owned_by_active)