From 9d3b86302d7f0b758d8306d554e463404bfd0fa8 Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Sun, 15 Oct 2017 11:26:42 -0700 Subject: [PATCH] clean up tests to reflect new purging code --- tests/site_file_tests.rb | 44 +++++---------- .../delete_cache_order_worker_tests.rb | 21 -------- tests/workers/delete_cache_worker_tests.rb | 53 ------------------- .../workers/purge_cache_order_worker_tests.rb | 21 -------- tests/workers/purge_cache_worker_tests.rb | 52 ------------------ workers/delete_cache_order_worker.rb | 20 ------- workers/delete_cache_worker.rb | 21 -------- workers/purge_cache_order_worker.rb | 20 ------- 8 files changed, 12 insertions(+), 240 deletions(-) delete mode 100644 tests/workers/delete_cache_order_worker_tests.rb delete mode 100644 tests/workers/delete_cache_worker_tests.rb delete mode 100644 tests/workers/purge_cache_order_worker_tests.rb delete mode 100644 tests/workers/purge_cache_worker_tests.rb delete mode 100644 workers/delete_cache_order_worker.rb delete mode 100644 workers/delete_cache_worker.rb delete mode 100644 workers/purge_cache_order_worker.rb diff --git a/tests/site_file_tests.rb b/tests/site_file_tests.rb index 060e5b7f..e54b6884 100644 --- a/tests/site_file_tests.rb +++ b/tests/site_file_tests.rb @@ -18,15 +18,14 @@ describe 'site_files' do before do @site = Fabricate :site ThumbnailWorker.jobs.clear - PurgeCacheOrderWorker.jobs.clear + PurgeCacheWorker.jobs.clear PurgeCacheWorker.jobs.clear ScreenshotWorker.jobs.clear end describe 'delete' do before do - DeleteCacheWorker.jobs.clear - DeleteCacheOrderWorker.jobs.clear + PurgeCacheWorker.jobs.clear end it 'works' do @@ -34,7 +33,7 @@ describe 'site_files' do uploaded_file = Rack::Test::UploadedFile.new('./tests/files/test.jpg', 'image/jpeg') upload 'files[]' => uploaded_file - PurgeCacheOrderWorker.jobs.clear + PurgeCacheWorker.jobs.clear @site.reload.space_used.must_equal initial_space_used + uploaded_file.size @site.actual_space_used.must_equal @site.space_used @@ -47,22 +46,11 @@ describe 'site_files' do @site.reload.space_used.must_equal initial_space_used @site.actual_space_used.must_equal @site.space_used - PurgeCacheOrderWorker.jobs.length.must_equal 0 - DeleteCacheOrderWorker.jobs.length.must_equal 1 - args = DeleteCacheOrderWorker.jobs.first['args'] + args = PurgeCacheWorker.jobs.first['args'] args[0].must_equal @site.username args[1].must_equal '/test.jpg' end - it 'flushes surf for index.html' do - uploaded_file = Rack::Test::UploadedFile.new('./tests/files/index.html', 'text/html') - upload 'files[]' => uploaded_file - delete_file filename: '/index.html' - - DeleteCacheOrderWorker.jobs.length.must_equal 3 - DeleteCacheOrderWorker.jobs.collect {|j| j['args'].last}.must_equal ['/index.html', '/?surf=1', '/'] - end - it 'property deletes directories with regexp special chars in them' do upload 'dir' => '8)', 'files[]' => Rack::Test::UploadedFile.new('./tests/files/test.jpg', 'image/jpeg') delete_file filename: '8)' @@ -177,10 +165,10 @@ describe 'site_files' do @site.title.must_equal 'Hello?' # Purge cache needs to flush / and index.html for either scenario. - PurgeCacheOrderWorker.jobs.length.must_equal 3 - first_purge = PurgeCacheOrderWorker.jobs.first - surf_purge = PurgeCacheOrderWorker.jobs[1] - dirname_purge = PurgeCacheOrderWorker.jobs.last + PurgeCacheWorker.jobs.length.must_equal 3 + first_purge = PurgeCacheWorker.jobs.first + surf_purge = PurgeCacheWorker.jobs[1] + dirname_purge = PurgeCacheWorker.jobs.last username, pathname = first_purge['args'] username.must_equal @site.username @@ -222,7 +210,7 @@ describe 'site_files' do 'dir' => 'subdir', 'files[]' => Rack::Test::UploadedFile.new('./tests/files/index.html', 'text/html') ) - PurgeCacheOrderWorker.jobs.select {|j| j['args'].last == '/subdir/'}.length.must_equal 1 + PurgeCacheWorker.jobs.select {|j| j['args'].last == '/subdir/'}.length.must_equal 1 end it 'succeeds with valid file' do @@ -232,7 +220,7 @@ describe 'site_files' do last_response.body.must_match /successfully uploaded/i File.exists?(@site.files_path('test.jpg')).must_equal true - username, path = PurgeCacheOrderWorker.jobs.first['args'] + username, path = PurgeCacheWorker.jobs.first['args'] username.must_equal @site.username path.must_equal '/test.jpg' @@ -295,18 +283,10 @@ describe 'site_files' do last_response.body.must_match /successfully uploaded/i File.exists?(@site.files_path('derpie/derptest/test.jpg')).must_equal true - PurgeCacheOrderWorker.jobs.length.must_equal 1 - username, path = PurgeCacheOrderWorker.jobs.first['args'] - path.must_equal '/derpie/derptest/test.jpg' - - PurgeCacheOrderWorker.drain - - PurgeCacheWorker.jobs.length.must_equal 2 - ip, username, path = PurgeCacheWorker.jobs.first['args'] - ip.must_equal '10.0.0.1' + PurgeCacheWorker.jobs.length.must_equal 1 + username, path = PurgeCacheWorker.jobs.first['args'] username.must_equal @site.username path.must_equal '/derpie/derptest/test.jpg' - PurgeCacheWorker.jobs.last['args'].first.must_equal '10.0.0.2' ThumbnailWorker.jobs.length.must_equal 1 ThumbnailWorker.drain diff --git a/tests/workers/delete_cache_order_worker_tests.rb b/tests/workers/delete_cache_order_worker_tests.rb deleted file mode 100644 index 9810fcd8..00000000 --- a/tests/workers/delete_cache_order_worker_tests.rb +++ /dev/null @@ -1,21 +0,0 @@ -require_relative '../environment.rb' - -describe DeleteCacheWorker do - before do - PurgeCacheOrderWorker.jobs.clear - PurgeCacheWorker.jobs.clear - end - - it 'queues up purges' do - DeleteCacheOrderWorker.new.perform('kyledrake', '/test.jpg') - - job_one_args = DeleteCacheWorker.jobs.first['args'] - job_two_args = DeleteCacheWorker.jobs.last['args'] - job_one_args[0].must_equal '10.0.0.1' - job_one_args[1].must_equal 'kyledrake' - job_one_args[2].must_equal '/test.jpg' - job_two_args[0].must_equal '10.0.0.2' - job_two_args[1].must_equal 'kyledrake' - job_two_args[2].must_equal '/test.jpg' - end -end diff --git a/tests/workers/delete_cache_worker_tests.rb b/tests/workers/delete_cache_worker_tests.rb deleted file mode 100644 index b052d8fa..00000000 --- a/tests/workers/delete_cache_worker_tests.rb +++ /dev/null @@ -1,53 +0,0 @@ -require_relative '../environment.rb' -=begin -describe DeleteCacheWorker do - before do - @test_ip = '10.0.0.1' - end - - it 'handles 404 without exception' do - stub_request(:get, "http://#{@test_ip}/:cache/purge/test.jpg"). - with(headers: {'Host' => 'kyledrake.neocities.org'}) - .to_return(status: 404) - - worker = DeleteCacheWorker.new - worker.perform @test_ip, 'kyledrake', '/test.jpg' - end - - it 'sends a purge request' do - stub_request(:get, "http://#{@test_ip}/:cache/purge/test.jpg"). - with(headers: {'Host' => 'kyledrake.neocities.org'}) - .to_return(status: 200) - - worker = DeleteCacheWorker.new - worker.perform @test_ip, 'kyledrake', '/test.jpg' - - assert_requested :get, "http://#{@test_ip}/:cache/purge/test.jpg" - end - - it 'handles spaces correctly' do - stub_request(:get, "http://#{@test_ip}/:cache/purge/te st.jpg"). - with(headers: {'Host' => 'kyledrake.neocities.org'}) - .to_return(status: 200) - - url = Addressable::URI.encode_component( - "http://#{@test_ip}/:cache/purge/te st.jpg", - Addressable::URI::CharacterClasses::QUERY - ) - - worker = DeleteCacheWorker.new - worker.perform @test_ip, 'kyledrake', '/te st.jpg' - - assert_requested :get, url - end - - it 'works without forward slash' do - stub_request(:get, "http://#{@test_ip}/:cache/purge/test.jpg"). - with(headers: {'Host' => 'kyledrake.neocities.org'}) - .to_return(status: 200) - - worker = DeleteCacheWorker.new - worker.perform @test_ip, 'kyledrake', 'test.jpg' - end -end -=end diff --git a/tests/workers/purge_cache_order_worker_tests.rb b/tests/workers/purge_cache_order_worker_tests.rb deleted file mode 100644 index 39582f71..00000000 --- a/tests/workers/purge_cache_order_worker_tests.rb +++ /dev/null @@ -1,21 +0,0 @@ -require_relative '../environment.rb' - -describe PurgeCacheWorker do - before do - PurgeCacheOrderWorker.jobs.clear - PurgeCacheWorker.jobs.clear - end - - it 'queues up purges' do - PurgeCacheOrderWorker.new.perform('kyledrake', '/test.jpg') - - job_one_args = PurgeCacheWorker.jobs.first['args'] - job_two_args = PurgeCacheWorker.jobs.last['args'] - job_one_args[0].must_equal '10.0.0.1' - job_one_args[1].must_equal 'kyledrake' - job_one_args[2].must_equal '/test.jpg' - job_two_args[0].must_equal '10.0.0.2' - job_two_args[1].must_equal 'kyledrake' - job_two_args[2].must_equal '/test.jpg' - end -end diff --git a/tests/workers/purge_cache_worker_tests.rb b/tests/workers/purge_cache_worker_tests.rb deleted file mode 100644 index 70a47011..00000000 --- a/tests/workers/purge_cache_worker_tests.rb +++ /dev/null @@ -1,52 +0,0 @@ -require_relative '../environment.rb' - -describe PurgeCacheWorker do - before do - @test_ip = '10.0.0.1' - end - - it 'handles 404 without exception' do - stub_request(:head, "https://#{@test_ip}/test.jpg"). - with(headers: {'Host' => 'kyledrake.neocities.org', 'Cache-Purge' => '1'}) - .to_return(status: 404) - - worker = PurgeCacheWorker.new - worker.perform @test_ip, 'kyledrake', '/test.jpg' - end - - it 'sends a purge request' do - stub_request(:head, "https://#{@test_ip}/test.jpg"). - with(headers: {'Host' => 'kyledrake.neocities.org', 'Cache-Purge' => '1'}) - .to_return(status: 200) - - worker = PurgeCacheWorker.new - worker.perform @test_ip, 'kyledrake', '/test.jpg' - - assert_requested :head, "https://#{@test_ip}/test.jpg" - end - - it 'handles spaces correctly' do - stub_request(:head, "https://#{@test_ip}/te st.jpg"). - with(headers: {'Host' => 'kyledrake.neocities.org', 'Cache-Purge' => '1'}) - .to_return(status: 200) - - url = Addressable::URI.encode_component( - "https://#{@test_ip}/te st.jpg", - Addressable::URI::CharacterClasses::QUERY - ) - - worker = PurgeCacheWorker.new - worker.perform @test_ip, 'kyledrake', '/te st.jpg' - - assert_requested :head, url - end - - it 'works without forward slash' do - stub_request(:head, "https://#{@test_ip}/test.jpg"). - with(headers: {'Host' => 'kyledrake.neocities.org', 'Cache-Purge' => '1'}) - .to_return(status: 200) - - worker = PurgeCacheWorker.new - worker.perform @test_ip, 'kyledrake', 'test.jpg' - end -end diff --git a/workers/delete_cache_order_worker.rb b/workers/delete_cache_order_worker.rb deleted file mode 100644 index 3c8eb73e..00000000 --- a/workers/delete_cache_order_worker.rb +++ /dev/null @@ -1,20 +0,0 @@ -class DeleteCacheOrderWorker - include Sidekiq::Worker - sidekiq_options queue: :deletecacheorder, retry: 1000, backtrace: true, average_scheduled_poll_interval: 1 - - sidekiq_retry_in do |count| - return 10 if count < 10 - 180 - end - - def perform(username, path) - #proxy_ips = Resolv.getaddresses($config['cache_purge_ips_uri']).keep_if {|r| !r.match(/:/)} - proxy_ips = $config['proxy_ips'] - - return if proxy_ips.nil? || proxy_ips.empty? - - proxy_ips.each do |proxy_ip| - DeleteCacheWorker.perform_async proxy_ip, username, path - end - end -end diff --git a/workers/delete_cache_worker.rb b/workers/delete_cache_worker.rb deleted file mode 100644 index 8af5d2e6..00000000 --- a/workers/delete_cache_worker.rb +++ /dev/null @@ -1,21 +0,0 @@ -require 'open-uri' - -# PurgeCacheWorker refreshes the cache, this actually deletes it. -# This is because when the file is 404ing the PurgeCacheWorker -# will just sit on the stale cache, even though it's not supposed to. -# It's some nginx bug. I'm not going to deal with it. - -class DeleteCacheWorker - HTTP_TIMEOUT = 10 - include Sidekiq::Worker - sidekiq_options queue: :deletecache, retry: 3, backtrace: false, average_scheduled_poll_interval: 1 - - sidekiq_retry_in do |count| - return 10 if count < 10 - 180 - end - - def perform(proxy_ip, username, path) - $redis_proxy.publish 'proxy', {cmd: 'purge', path: "#{username}#{path}"}.to_msgpack - end -end diff --git a/workers/purge_cache_order_worker.rb b/workers/purge_cache_order_worker.rb deleted file mode 100644 index 90c3ceec..00000000 --- a/workers/purge_cache_order_worker.rb +++ /dev/null @@ -1,20 +0,0 @@ -class PurgeCacheOrderWorker - include Sidekiq::Worker - sidekiq_options queue: :purgecacheorder, retry: 1000, backtrace: true, average_scheduled_poll_interval: 1 - - sidekiq_retry_in do |count| - return 10 if count < 10 - 180 - end - - def perform(username, path) - proxy_ips = $config['proxy_ips'] - #proxy_ips = Resolv.getaddresses($config['cache_purge_ips_uri']).keep_if {|r| !r.match(/:/)} - - return if proxy_ips.nil? || proxy_ips.empty? - - proxy_ips.each do |proxy_ip| - PurgeCacheWorker.perform_async proxy_ip, username, path - end - end -end