Skip to content

Commit

Permalink
Preemptively fix rubocop complain - Metrics/BlockLength: Block has to…
Browse files Browse the repository at this point in the history
…o many lines
  • Loading branch information
aditya-pr committed May 26, 2018
1 parent 7c31de0 commit ffffdeb
Showing 1 changed file with 164 additions and 164 deletions.
328 changes: 164 additions & 164 deletions test/unit/pusher_test.rb
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
require 'test_helper'

class PusherTest < ActiveSupport::TestCase
context "creating a new gemcutter" do
setup do
@user = create(:user, email: "user@example.com")
@gem = gem_file
@cutter = Pusher.new(@user, @gem)
end
setup do
@user = create(:user, email: "user@example.com")
@gem = gem_file
@cutter = Pusher.new(@user, @gem)
end

context "creating a new gemcutter" do
should "have some state" do
assert @cutter.respond_to?(:user)
assert @cutter.respond_to?(:version)
Expand Down Expand Up @@ -139,203 +139,203 @@ class PusherTest < ActiveSupport::TestCase
@cutter.pull_spec
assert_includes @cutter.message, %{package content (data.tar.gz) is missing}
end
end

context "initialize new gem with find if one does not exist" do
setup do
spec = mock
spec.expects(:name).returns "some name"
spec.expects(:version).returns "1.3.3.7"
spec.expects(:original_platform).returns "ruby"
@cutter.stubs(:spec).returns spec
@cutter.stubs(:size).returns 5
@cutter.stubs(:body).returns StringIO.new("dummy body")

@cutter.find
end
context "initialize new gem with find if one does not exist" do
setup do
spec = mock
spec.expects(:name).returns "some name"
spec.expects(:version).returns "1.3.3.7"
spec.expects(:original_platform).returns "ruby"
@cutter.stubs(:spec).returns spec
@cutter.stubs(:size).returns 5
@cutter.stubs(:body).returns StringIO.new("dummy body")

@cutter.find
end

should "set rubygem" do
assert_equal 'some name', @cutter.rubygem.name
end
should "set rubygem" do
assert_equal 'some name', @cutter.rubygem.name
end

should "set version" do
assert_equal '1.3.3.7', @cutter.version.number
end
should "set version" do
assert_equal '1.3.3.7', @cutter.version.number
end

should "set gem version size" do
assert_equal 5, @cutter.version.size
end
should "set gem version size" do
assert_equal 5, @cutter.version.size
end

should "set sha256" do
expected_sha = Digest::SHA2.base64digest(@cutter.body.string)
assert_equal expected_sha, @cutter.version.sha256
end
should "set sha256" do
expected_sha = Digest::SHA2.base64digest(@cutter.body.string)
assert_equal expected_sha, @cutter.version.sha256
end
end

context "finding an existing gem" do
should "bring up existing gem with matching spec" do
@rubygem = create(:rubygem)
spec = mock
spec.stubs(:name).returns @rubygem.name
spec.stubs(:version).returns "1.3.3.7"
spec.stubs(:original_platform).returns "ruby"
@cutter.stubs(:spec).returns spec
@cutter.find

assert_equal @rubygem, @cutter.rubygem
assert_not_nil @cutter.version
end
context "finding an existing gem" do
should "bring up existing gem with matching spec" do
@rubygem = create(:rubygem)
spec = mock
spec.stubs(:name).returns @rubygem.name
spec.stubs(:version).returns "1.3.3.7"
spec.stubs(:original_platform).returns "ruby"
@cutter.stubs(:spec).returns spec
@cutter.find

assert_equal @rubygem, @cutter.rubygem
assert_not_nil @cutter.version
end

should "error out when changing case with usuable versions" do
@rubygem = create(:rubygem)
create(:version, rubygem: @rubygem)
should "error out when changing case with usuable versions" do
@rubygem = create(:rubygem)
create(:version, rubygem: @rubygem)

assert_not_equal @rubygem.name, @rubygem.name.upcase
assert_not_equal @rubygem.name, @rubygem.name.upcase

spec = mock
spec.expects(:name).returns @rubygem.name.upcase
spec.expects(:version).returns "1.3.3.7"
spec.expects(:original_platform).returns "ruby"
@cutter.stubs(:spec).returns spec
refute @cutter.find
spec = mock
spec.expects(:name).returns @rubygem.name.upcase
spec.expects(:version).returns "1.3.3.7"
spec.expects(:original_platform).returns "ruby"
@cutter.stubs(:spec).returns spec
refute @cutter.find

assert_match(/Unable to change case/, @cutter.message)
end
assert_match(/Unable to change case/, @cutter.message)
end

should "update the DB to reflect the case in the spec" do
@rubygem = create(:rubygem)
assert_not_equal @rubygem.name, @rubygem.name.upcase
should "update the DB to reflect the case in the spec" do
@rubygem = create(:rubygem)
assert_not_equal @rubygem.name, @rubygem.name.upcase

spec = mock
spec.stubs(:name).returns @rubygem.name.upcase
spec.stubs(:version).returns "1.3.3.7"
spec.stubs(:original_platform).returns "ruby"
@cutter.stubs(:spec).returns spec
@cutter.find
spec = mock
spec.stubs(:name).returns @rubygem.name.upcase
spec.stubs(:version).returns "1.3.3.7"
spec.stubs(:original_platform).returns "ruby"
@cutter.stubs(:spec).returns spec
@cutter.find

@cutter.rubygem.save
@rubygem.reload
@cutter.rubygem.save
@rubygem.reload

assert_equal @rubygem.name, @rubygem.name.upcase
end
assert_equal @rubygem.name, @rubygem.name.upcase
end
end

context "checking if the rubygem can be pushed to" do
should "be true if rubygem is new" do
@cutter.stubs(:rubygem).returns Rubygem.new
assert @cutter.authorize
end

context "with a existing rubygem" do
setup do
@rubygem = create(:rubygem, name: "the_gem_name")
@cutter.stubs(:rubygem).returns @rubygem
end

should "be true if owned by the user" do
@rubygem.ownerships.create(user: @user)
assert @cutter.authorize
end

should "be true if no versions exist since it's a dependency" do
assert @cutter.authorize
end

should "be false if not owned by user and an indexed version exists" do
create(:version, rubygem: @rubygem, number: '0.1.1')
refute @cutter.authorize
assert_equal "You do not have permission to push to this gem. Ask an owner to add you with: gem owner the_gem_name --add user@example.com",
@cutter.message
assert_equal 403, @cutter.code
end

should "be true if not owned by user but no indexed versions exist" do
create(:version, rubygem: @rubygem, number: '0.1.1', indexed: false)
assert @cutter.authorize
end
end
context "checking if the rubygem can be pushed to" do
should "be true if rubygem is new" do
@cutter.stubs(:rubygem).returns Rubygem.new
assert @cutter.authorize
end

context "successfully saving a gemcutter" do
context "with a existing rubygem" do
setup do
@rubygem = create(:rubygem, name: 'gemsgemsgems')
@rubygem = create(:rubygem, name: "the_gem_name")
@cutter.stubs(:rubygem).returns @rubygem
create(:version, rubygem: @rubygem, number: '0.1.1', summary: 'old summary')
@cutter.stubs(:version).returns @rubygem.versions[0]
@rubygem.stubs(:update_attributes_from_gem_specification!)
GemCachePurger.stubs(:call)
Indexer.any_instance.stubs(:write_gem)
@cutter.save
end

should "update rubygem attributes" do
assert_received(@rubygem, :update_attributes_from_gem_specification!) do |rubygem|
rubygem.with(@cutter.version, @cutter.spec)
end
should "be true if owned by the user" do
@rubygem.ownerships.create(user: @user)
assert @cutter.authorize
end

should "set gem file size" do
assert_equal @gem.size, @cutter.size
should "be true if no versions exist since it's a dependency" do
assert @cutter.authorize
end

should "set success code" do
assert_equal 200, @cutter.code
should "be false if not owned by user and an indexed version exists" do
create(:version, rubygem: @rubygem, number: '0.1.1')
refute @cutter.authorize
assert_equal "You do not have permission to push to this gem. Ask an owner to add you with: gem owner the_gem_name --add user@example.com",
@cutter.message
assert_equal 403, @cutter.code
end

should "set info_checksum" do
assert_not_nil @rubygem.versions.last.info_checksum
should "be true if not owned by user but no indexed versions exist" do
create(:version, rubygem: @rubygem, number: '0.1.1', indexed: false)
assert @cutter.authorize
end
end
end

should "call GemCachePurger" do
assert_received(GemCachePurger, :call) { |obj| obj.with(@rubygem.name).once }
end
context "successfully saving a gemcutter" do
setup do
@rubygem = create(:rubygem, name: 'gemsgemsgems')
@cutter.stubs(:rubygem).returns @rubygem
create(:version, rubygem: @rubygem, number: '0.1.1', summary: 'old summary')
@cutter.stubs(:version).returns @rubygem.versions[0]
@rubygem.stubs(:update_attributes_from_gem_specification!)
GemCachePurger.stubs(:call)
Indexer.any_instance.stubs(:write_gem)
@cutter.save
end

should "enque job for updating ES index, spec index and purging cdn" do
assert_difference 'Delayed::Job.count', 2 do
@cutter.save
end
should "update rubygem attributes" do
assert_received(@rubygem, :update_attributes_from_gem_specification!) do |rubygem|
rubygem.with(@cutter.version, @cutter.spec)
end
end

should "create rubygem index" do
@rubygem.update_column('updated_at', Date.new(2016, 07, 04))
Delayed::Worker.new.work_off
response = Rubygem.__elasticsearch__.client.get index: "rubygems-#{Rails.env}",
type: 'rubygem',
id: @rubygem.id
expected_response = {
'name' => 'gemsgemsgems',
'yanked' => false,
'summary' => 'old summary',
'description' => 'Some awesome gem',
'downloads' => 0,
'latest_version_number' => '0.1.1',
'updated' => '2016-07-04T00:00:00.000Z'
}

assert_equal expected_response, response['_source']
end
should "set gem file size" do
assert_equal @gem.size, @cutter.size
end

context 'pushing a new version' do
setup do
@rubygem = create(:rubygem)
@cutter.stubs(:rubygem).returns @rubygem
create(:version, rubygem: @rubygem, summary: 'old summary')
version = create(:version, rubygem: @rubygem, summary: 'new summary')
@cutter.stubs(:version).returns version
@rubygem.stubs(:update_attributes_from_gem_specification!)
@cutter.stubs(:version).returns version
GemCachePurger.stubs(:call)
Indexer.any_instance.stubs(:write_gem)
should "set success code" do
assert_equal 200, @cutter.code
end

should "set info_checksum" do
assert_not_nil @rubygem.versions.last.info_checksum
end

should "call GemCachePurger" do
assert_received(GemCachePurger, :call) { |obj| obj.with(@rubygem.name).once }
end

should "enque job for updating ES index, spec index and purging cdn" do
assert_difference 'Delayed::Job.count', 2 do
@cutter.save
end
end

should "update rubygem index" do
Delayed::Worker.new.work_off
response = Rubygem.__elasticsearch__.client.get index: "rubygems-#{Rails.env}",
type: 'rubygem',
id: @rubygem.id
assert_equal 'new summary', response['_source']['summary']
end
should "create rubygem index" do
@rubygem.update_column('updated_at', Date.new(2016, 07, 04))
Delayed::Worker.new.work_off
response = Rubygem.__elasticsearch__.client.get index: "rubygems-#{Rails.env}",
type: 'rubygem',
id: @rubygem.id
expected_response = {
'name' => 'gemsgemsgems',
'yanked' => false,
'summary' => 'old summary',
'description' => 'Some awesome gem',
'downloads' => 0,
'latest_version_number' => '0.1.1',
'updated' => '2016-07-04T00:00:00.000Z'
}

assert_equal expected_response, response['_source']
end
end

context 'pushing a new version' do
setup do
@rubygem = create(:rubygem)
@cutter.stubs(:rubygem).returns @rubygem
create(:version, rubygem: @rubygem, summary: 'old summary')
version = create(:version, rubygem: @rubygem, summary: 'new summary')
@cutter.stubs(:version).returns version
@rubygem.stubs(:update_attributes_from_gem_specification!)
@cutter.stubs(:version).returns version
GemCachePurger.stubs(:call)
Indexer.any_instance.stubs(:write_gem)
@cutter.save
end

should "update rubygem index" do
Delayed::Worker.new.work_off
response = Rubygem.__elasticsearch__.client.get index: "rubygems-#{Rails.env}",
type: 'rubygem',
id: @rubygem.id
assert_equal 'new summary', response['_source']['summary']
end
end
end

0 comments on commit ffffdeb

Please sign in to comment.