diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2017-07-04 15:28:47 +0200 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2017-07-04 15:28:47 +0200 |
commit | e10f62f092e14650ba1a07fa3d0751109933cafe (patch) | |
tree | b7461c74b3f696486322d0b21d701bd22acf6438 /test | |
parent | 2a2f8ca521e9ffaebd4227940b802ce88fdbb02d (diff) | |
download | rails-e10f62f092e14650ba1a07fa3d0751109933cafe.tar.gz rails-e10f62f092e14650ba1a07fa3d0751109933cafe.tar.bz2 rails-e10f62f092e14650ba1a07fa3d0751109933cafe.zip |
Extract shared tests
Diffstat (limited to 'test')
-rw-r--r-- | test/disk_site_test.rb | 51 | ||||
-rw-r--r-- | test/s3_site_test.rb | 63 | ||||
-rw-r--r-- | test/sites/disk_site_test.rb | 8 | ||||
-rw-r--r-- | test/sites/gcs_site_test.rb | 13 | ||||
-rw-r--r-- | test/sites/s3_site_test.rb | 16 | ||||
-rw-r--r-- | test/sites/shared_site_tests.rb (renamed from test/gcs_site_test.rb) | 22 |
6 files changed, 45 insertions, 128 deletions
diff --git a/test/disk_site_test.rb b/test/disk_site_test.rb deleted file mode 100644 index 198283a97b..0000000000 --- a/test/disk_site_test.rb +++ /dev/null @@ -1,51 +0,0 @@ -require "test_helper" -require "fileutils" -require "tmpdir" -require "active_support/core_ext/securerandom" -require "active_file/site" - -class ActiveFile::DiskSiteTest < ActiveSupport::TestCase - FIXTURE_KEY = SecureRandom.base58(24) - FIXTURE_FILE = StringIO.new("Hello world!") - - setup do - @site = ActiveFile::Sites::DiskSite.new(root: File.join(Dir.tmpdir, "active_file")) - @site.upload FIXTURE_KEY, FIXTURE_FILE - FIXTURE_FILE.rewind - end - - teardown do - FileUtils.rm_rf @site.root - FIXTURE_FILE.rewind - end - - test "uploading" do - key = SecureRandom.base58(24) - data = "Something else entirely!" - @site.upload(key, StringIO.new(data)) - - assert_equal data, @site.download(key) - end - - test "downloading" do - assert_equal FIXTURE_FILE.read, @site.download(FIXTURE_KEY) - end - - test "existing" do - assert @site.exist?(FIXTURE_KEY) - assert_not @site.exist?(FIXTURE_KEY + "nonsense") - end - - test "deleting" do - @site.delete FIXTURE_KEY - assert_not @site.exist?(FIXTURE_KEY) - end - - test "sizing" do - assert_equal FIXTURE_FILE.size, @site.byte_size(FIXTURE_KEY) - end - - test "checksumming" do - assert_equal Digest::MD5.hexdigest(FIXTURE_FILE.read), @site.checksum(FIXTURE_KEY) - end -end diff --git a/test/s3_site_test.rb b/test/s3_site_test.rb deleted file mode 100644 index 24a890e3ec..0000000000 --- a/test/s3_site_test.rb +++ /dev/null @@ -1,63 +0,0 @@ -require "test_helper" -require "active_support/core_ext/securerandom" -require "active_file/site" - -if ENV["AWS_ACCESS_KEY_ID"] && ENV["AWS_SECRET_ACCESS_KEY"] && ENV["AWS_REGION"] && ENV["AWS_S3_BUCKET"] - class ActiveFile::S3SiteTest < ActiveSupport::TestCase - FIXTURE_KEY = SecureRandom.base58(24).to_s - FIXTURE_FILE = StringIO.new("Hello world!") - - setup do - @site = ActiveFile::Sites::S3Site.new( - access_key_id: ENV["AWS_ACCESS_KEY_ID"], - secret_access_key: ENV["AWS_SECRET_ACCESS_KEY"], - region: ENV["AWS_REGION"], - bucket: ENV["AWS_S3_BUCKET"] - ) - - @site.upload FIXTURE_KEY, FIXTURE_FILE - FIXTURE_FILE.rewind - end - - teardown do - @site.delete FIXTURE_KEY - FIXTURE_FILE.rewind - end - - test "uploading" do - begin - key = SecureRandom.base58(24) - data = "Something else entirely!" - @site.upload(key, StringIO.new(data)) - - assert_equal data, @site.download(key) - ensure - @site.delete key - end - end - - test "downloading" do - assert_equal FIXTURE_FILE.read, @site.download(FIXTURE_KEY) - end - - test "existing" do - assert @site.exist?(FIXTURE_KEY) - assert_not @site.exist?(FIXTURE_KEY + "nonsense") - end - - test "deleting" do - @site.delete FIXTURE_KEY - assert_not @site.exist?(FIXTURE_KEY) - end - - test "sizing" do - assert_equal FIXTURE_FILE.size, @site.byte_size(FIXTURE_KEY) - end - - test "checksumming" do - assert_equal Digest::MD5.hexdigest(FIXTURE_FILE.read), @site.checksum(FIXTURE_KEY) - end - end -else - puts "Skipping S3 Site tests because ENV variables are missing" -end diff --git a/test/sites/disk_site_test.rb b/test/sites/disk_site_test.rb new file mode 100644 index 0000000000..0956f08528 --- /dev/null +++ b/test/sites/disk_site_test.rb @@ -0,0 +1,8 @@ +require "tmpdir" +require "sites/shared_site_tests" + +class ActiveFile::Sites::DiskSiteTest < ActiveSupport::TestCase + SITE = ActiveFile::Sites::DiskSite.new(root: File.join(Dir.tmpdir, "active_file")) + + include ActiveFile::Sites::SharedSiteTests +end diff --git a/test/sites/gcs_site_test.rb b/test/sites/gcs_site_test.rb new file mode 100644 index 0000000000..e43223c28d --- /dev/null +++ b/test/sites/gcs_site_test.rb @@ -0,0 +1,13 @@ +require "sites/shared_site_tests" + +if ENV["GCS_PROJECT"] && ENV["GCS_KEYFILE"] && ENV["GCS_BUCKET"] + class ActiveFile::Sites::GCSSiteTest < ActiveSupport::TestCase + SITE = ActiveFile::Sites::GCSSite.new( + project: ENV["GCS_PROJECT"], keyfile: ENV["GCS_KEYFILE"], bucket: ENV["GCS_BUCKET"] + ) + + include ActiveFile::Sites::SharedSiteTests + end +else + puts "Skipping GCS Site tests because ENV variables are missing" +end diff --git a/test/sites/s3_site_test.rb b/test/sites/s3_site_test.rb new file mode 100644 index 0000000000..9e165f0dea --- /dev/null +++ b/test/sites/s3_site_test.rb @@ -0,0 +1,16 @@ +require "sites/shared_site_tests" + +if ENV["AWS_ACCESS_KEY_ID"] && ENV["AWS_SECRET_ACCESS_KEY"] && ENV["AWS_REGION"] && ENV["AWS_S3_BUCKET"] + class ActiveFile::Sites::S3SiteTest < ActiveSupport::TestCase + SITE = ActiveFile::Sites::S3Site.new( + access_key_id: ENV["AWS_ACCESS_KEY_ID"], + secret_access_key: ENV["AWS_SECRET_ACCESS_KEY"], + region: ENV["AWS_REGION"], + bucket: ENV["AWS_S3_BUCKET"] + ) + + include ActiveFile::Sites::SharedSiteTests + end +else + puts "Skipping S3 Site tests because ENV variables are missing" +end diff --git a/test/gcs_site_test.rb b/test/sites/shared_site_tests.rb index 468454a6fb..fd900be4a4 100644 --- a/test/gcs_site_test.rb +++ b/test/sites/shared_site_tests.rb @@ -1,19 +1,15 @@ require "test_helper" require "active_support/core_ext/securerandom" -require "active_file/site" -if ENV["GCS_PROJECT"] && ENV["GCS_KEYFILE"] && ENV["GCS_BUCKET"] - class ActiveFile::GCSSiteTest < ActiveSupport::TestCase - FIXTURE_KEY = SecureRandom.base58(24).to_s - FIXTURE_FILE = StringIO.new("Hello world!") +module ActiveFile::Sites::SharedSiteTests + extend ActiveSupport::Concern + + FIXTURE_KEY = SecureRandom.base58(24) + FIXTURE_FILE = StringIO.new("Hello world!") + included do setup do - @site = ActiveFile::Sites::GCSSite.new( - project: ENV["GCS_PROJECT"], - keyfile: ENV["GCS_KEYFILE"], - bucket: ENV["GCS_BUCKET"] - ) - + @site = self.class.const_get(:SITE) @site.upload FIXTURE_KEY, FIXTURE_FILE FIXTURE_FILE.rewind end @@ -52,11 +48,9 @@ if ENV["GCS_PROJECT"] && ENV["GCS_KEYFILE"] && ENV["GCS_BUCKET"] test "sizing" do assert_equal FIXTURE_FILE.size, @site.byte_size(FIXTURE_KEY) end - + test "checksumming" do assert_equal Digest::MD5.hexdigest(FIXTURE_FILE.read), @site.checksum(FIXTURE_KEY) end end -else - puts "Skipping GCS Site tests because ENV variables are missing" end |