sucker 0.6.1 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/sucker.rb CHANGED
@@ -6,7 +6,7 @@ require "sucker/request"
6
6
  require "sucker/response"
7
7
 
8
8
  # = Sucker
9
- # Sucker is a thin Ruby wrapper to the Amazon Product Advertising API.
9
+ # Sucker is a paper-thin Ruby wrapper to the Amazon Product Advertising API.
10
10
  module Sucker
11
11
  AMAZON_API_VERSION = "2009-11-01"
12
12
 
data/lib/sucker/stub.rb CHANGED
@@ -14,7 +14,7 @@ module Sucker
14
14
  def stub(request)
15
15
  request.instance_eval do
16
16
  self.class.send :define_method, :fixture do
17
- filename = Digest::MD5.hexdigest(parameters.values.flatten.join)
17
+ filename = Digest::MD5.hexdigest(uri.to_s)
18
18
  "#{Sucker.fixtures_path}/#{filename}.xml"
19
19
  end
20
20
 
@@ -0,0 +1,56 @@
1
+ require "spec_helper"
2
+
3
+ module Sucker
4
+ describe "Item lookup" do
5
+ before do
6
+ @worker = Sucker.new(
7
+ :locale => "fr",
8
+ :key => amazon["key"],
9
+ :secret => amazon["secret"])
10
+
11
+ # @worker.curl { |curl| curl.verbose = true }
12
+
13
+ @worker << {
14
+ "Operation" => "ItemLookup",
15
+ "IdType" => "ASIN",
16
+ "Condition" => "All",
17
+ "MerchantId" => "All",
18
+ "ResponseGroup" => ["ItemAttributes", "OfferFull"] }
19
+
20
+ Sucker.stub(@worker)
21
+ end
22
+
23
+ context "single item" do
24
+ before do
25
+ @worker << { "ItemId" => "0816614024" }
26
+ @item = @worker.get.to_h["ItemLookupResponse"]["Items"]["Item"]
27
+ end
28
+
29
+ it "returns an item" do
30
+ @item.should be_an_instance_of Hash
31
+ end
32
+
33
+ it "includes an ASIN string" do
34
+ @item["ASIN"].should eql "0816614024"
35
+ end
36
+
37
+ it "includes requested response groups" do
38
+ @item["ItemAttributes"].should be_an_instance_of Hash
39
+ @item["Offers"].should be_an_instance_of Hash
40
+ end
41
+ end
42
+
43
+ context "multiple items" do
44
+ before do
45
+ @worker << { "ItemId" => ["0816614024", "0143105825"] }
46
+ @items = @worker.get.to_h["ItemLookupResponse"]["Items"]["Item"]
47
+ pp @items
48
+ end
49
+
50
+ it "returns two items" do
51
+ @items.should be_an_instance_of Array
52
+ @items.size.should eql 2
53
+ end
54
+ end
55
+ end
56
+ end
@@ -45,6 +45,12 @@ module Sucker
45
45
  it "generates a path for the fixture" do
46
46
  @worker.fixture.should match /.*\/[0-9a-f]{32}\.xml$/
47
47
  end
48
+
49
+ it "generates unique fixtures across venues" do
50
+ us_fixture = @worker.fixture
51
+ @worker.locale = "fr"
52
+ @worker.fixture.should_not eql us_fixture
53
+ end
48
54
  end
49
55
  end
50
56
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sucker
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
4
+ hash: 3
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 1
10
- version: 0.6.1
9
+ - 2
10
+ version: 0.6.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Hakan Ensari
@@ -87,6 +87,7 @@ files:
87
87
  - lib/sucker/stub.rb
88
88
  - README.md
89
89
  - spec/benchmark/to_hash_implementations.rb
90
+ - spec/integration/france_spec.rb
90
91
  - spec/integration/item_lookup_spec.rb
91
92
  - spec/integration/japan_spec.rb
92
93
  - spec/integration/seller_listing_search_spec.rb
@@ -134,6 +135,7 @@ specification_version: 3
134
135
  summary: A paper-thin Ruby wrapper to the Amazon Product Advertising API
135
136
  test_files:
136
137
  - spec/benchmark/to_hash_implementations.rb
138
+ - spec/integration/france_spec.rb
137
139
  - spec/integration/item_lookup_spec.rb
138
140
  - spec/integration/japan_spec.rb
139
141
  - spec/integration/seller_listing_search_spec.rb