From 0d41a6561572aa17411e8a15362c5f2b22f374c7 Mon Sep 17 00:00:00 2001 From: Sijawusz Pur Rahnama Date: Sat, 1 Sep 2012 19:15:30 +0200 Subject: [PATCH] Tests are running again (with 3 failures for now) - Moved Garb::*Error classes definitions to lib/garb.rb - Added Gemfile.lock - Updated Rakefile with regard to packaging tasks - Minor fixes --- Gemfile | 1 + Gemfile.lock | 42 +++++++++++++++++++ Rakefile | 7 ++-- lib/garb.rb | 18 +++++++- lib/garb/model.rb | 6 +-- lib/garb/request/data.rb | 16 ------- test/test_helper.rb | 12 +++--- test/unit/garb/request/authentication_test.rb | 2 +- test/unit/garb/request/data_test.rb | 17 +++----- 9 files changed, 78 insertions(+), 43 deletions(-) create mode 100644 Gemfile.lock diff --git a/Gemfile b/Gemfile index 58362e16e..1fa3d7467 100644 --- a/Gemfile +++ b/Gemfile @@ -7,6 +7,7 @@ gem 'rake' group :test do gem 'shoulda' + gem 'shoulda-context' gem 'simplecov' gem 'minitest', :require => false gem 'jferris-mocha', :require => false diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 000000000..b10653bce --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,42 @@ +PATH + remote: . + specs: + garb (0.9.4) + activesupport (>= 2.2.0) + +GEM + remote: http://rubygems.org/ + specs: + activesupport (3.2.8) + i18n (~> 0.6) + multi_json (~> 1.0) + i18n (0.6.1) + jferris-mocha (0.9.8.20100526112143) + rake + minitest (3.3.0) + multi_json (1.3.6) + rake (0.9.2.2) + shoulda (3.1.1) + shoulda-context (~> 1.0) + shoulda-matchers (~> 1.2) + shoulda-context (1.0.0) + shoulda-matchers (1.3.0) + activesupport (>= 3.0.0) + simplecov (0.6.4) + multi_json (~> 1.0) + simplecov-html (~> 0.5.3) + simplecov-html (0.5.3) + yajl-ruby (1.1.0) + +PLATFORMS + ruby + +DEPENDENCIES + garb! + jferris-mocha + minitest + rake + shoulda + shoulda-context + simplecov + yajl-ruby diff --git a/Rakefile b/Rakefile index 4df5fde2b..bf3afa970 100755 --- a/Rakefile +++ b/Rakefile @@ -1,7 +1,8 @@ #!/usr/bin/env rake -require 'rake/gempackagetask' -require 'rake/testtask' + +require 'rubygems/package_task' require 'bundler/gem_tasks' +require 'rake/testtask' $:.unshift File.expand_path('../lib', __FILE__) require 'garb' @@ -27,6 +28,4 @@ rescue LoadError nil end -task :default => 'test' - # EOF diff --git a/lib/garb.rb b/lib/garb.rb index 61296fa76..f5c445ff9 100644 --- a/lib/garb.rb +++ b/lib/garb.rb @@ -38,7 +38,23 @@ module Request autoload :Authentication, 'garb/request/authentication' autoload :Data, 'garb/request/data' end -end + + class ClientError < StandardError + attr_reader :code, :message, :errors, :uri + + def initialize(message, code = nil, errors = [], uri = nil) + @code, @message, @errors, @uri = code, message, errors, uri + end + + def to_s + "#{code ? "[#{code}] #{message}" : message} : #{uri}" + end + end + class BadRequestError < ClientError; end + class InvalidCredentialsError < ClientError; end + class InsufficientPermissionsError < ClientError; end + class BackendError < ClientError; end + end # require 'garb/account_feed_request' # require 'garb/resource' diff --git a/lib/garb/model.rb b/lib/garb/model.rb index 999571f2d..de6ccf0af 100644 --- a/lib/garb/model.rb +++ b/lib/garb/model.rb @@ -51,15 +51,13 @@ def all(profile, options = {}) options[:limit] = 10_000 # maximum allowed results = nil while ((rs = results(profile, options)) && !rs.empty?) - results \ - ? results.concat(rs.to_a) - : results = rs + results ? results.concat(rs.to_a) : results = rs options[:offset] = results.size + 1 break if limit and results.size >= limit break if results.size >= results.total_results end - limit ? results[0...limit] : results + limit and results ? results[0...limit] : results end private diff --git a/lib/garb/request/data.rb b/lib/garb/request/data.rb index 7a1849db9..3b9009a1e 100644 --- a/lib/garb/request/data.rb +++ b/lib/garb/request/data.rb @@ -1,20 +1,4 @@ module Garb - class ClientError < StandardError - attr_reader :code, :message, :errors, :uri - - def initialize(message, code = nil, errors = [], uri = nil) - @code, @message, @errors, @uri = code, message, errors, uri - end - - def to_s - "#{code ? "[#{code}] #{message}" : message} : #{uri}" - end - end - class BadRequestError < ClientError; end - class InvalidCredentialsError < ClientError; end - class InsufficientPermissionsError < ClientError; end - class BackendError < ClientError; end - module Request class Data def initialize(session, base_url, parameters = {}) diff --git a/test/test_helper.rb b/test/test_helper.rb index aa926f917..cfb7a41eb 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -10,7 +10,7 @@ SimpleCov.start 'garb' rescue LoadError - puts "Install simplecov if you use 1.9 and want coverage metrics" + puts 'Install simplecov if you use 1.9 and want coverage metrics' end $:.reject! { |e| e.include? 'TextMate' } @@ -20,17 +20,16 @@ require 'shoulda' require 'minitest/unit' +require 'minitest/autorun' require 'mocha' $:.unshift File.expand_path('../../lib', __FILE__) require 'garb' class MiniTest::Unit::TestCase - include Shoulda::InstanceMethods - extend Shoulda::ClassMethods - include Shoulda::Assertions - extend Shoulda::Macros - include Shoulda::Helpers + include Shoulda::Context::Assertions + include Shoulda::Context::InstanceMethods + extend Shoulda::Context::ClassMethods def read_fixture(filename) File.read(File.dirname(__FILE__) + "/fixtures/#{filename}") @@ -42,3 +41,4 @@ def assert_data_params(expected) end MiniTest::Unit.autorun + diff --git a/test/unit/garb/request/authentication_test.rb b/test/unit/garb/request/authentication_test.rb index bd2206563..bc6732d45 100644 --- a/test/unit/garb/request/authentication_test.rb +++ b/test/unit/garb/request/authentication_test.rb @@ -21,7 +21,7 @@ class AuthenticationTest < MiniTest::Unit::TestCase 'Passwd' => 'fuzzybunnies', 'accountType' => 'HOSTED_OR_GOOGLE', 'service' => 'analytics', - 'source' => 'vigetLabs-garb-001' + 'source' => "sija-garb-v#{Garb::VERSION}" } request = Request::Authentication.new('user@example.com', 'fuzzybunnies') diff --git a/test/unit/garb/request/data_test.rb b/test/unit/garb/request/data_test.rb index 899ca281b..204140ab9 100644 --- a/test/unit/garb/request/data_test.rb +++ b/test/unit/garb/request/data_test.rb @@ -25,12 +25,7 @@ class DataTest < MiniTest::Unit::TestCase query_string.sub!(/^\?/, '') - assert_equal ["alt=json", "ids=12345", "metrics=country"], query_string.split('&').sort - end - - should "only contain JSON response option if parameters are empty" do - data_request = Request::Data.new(@session, "") - assert_equal "?alt=json", data_request.query_string + assert_equal ["ids=12345", "metrics=country"], query_string.split('&').sort end should "be able to build a uri" do @@ -87,7 +82,7 @@ class DataTest < MiniTest::Unit::TestCase data_request = Request::Data.new(@session, 'https://example.com/data', 'key' => 'value') data_request.stubs(:oauth_user_request).returns(response) - assert_raises(Garb::Request::Data::ClientError) do + assert_raises(Garb::ClientError) do data_request.send_request end end @@ -103,7 +98,7 @@ class DataTest < MiniTest::Unit::TestCase data_request = Request::Data.new(@session, 'https://example.com/data', 'key' => 'value') data_request.stubs(:oauth_user_request).returns(response) - assert_raises(Garb::Request::Data::ClientError) do + assert_raises(Garb::ClientError) do data_request.send_request end end @@ -116,7 +111,7 @@ class DataTest < MiniTest::Unit::TestCase assert_equal 'responseobject', data_request.oauth_user_request assert_received(@session, :access_token) - assert_received(access_token, :get) {|e| e.with('https://example.com/data?key=value&alt=json', {'GData-Version' => '2'})} + assert_received(access_token, :get) {|e| e.with('https://example.com/data?key=value', {'GData-Version' => '3'})} end should "be able to request via http with an auth token" do @@ -126,9 +121,9 @@ class DataTest < MiniTest::Unit::TestCase http = mock do |m| m.expects(:use_ssl=).with(true) m.expects(:verify_mode=).with(OpenSSL::SSL::VERIFY_NONE) - m.expects(:get).with('/data?key=value&alt=json', { + m.expects(:get).with('/data?key=value', { 'Authorization' => 'GoogleLogin auth=toke', - 'GData-Version' => '2' + 'GData-Version' => '3' }).returns(response) end