discogs-wrapper 1.1.4 → 2.0.0
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/LICENSE +9 -0
- data/README.markdown +123 -43
- data/lib/discogs-wrapper.rb +1 -0
- data/lib/discogs.rb +1 -0
- data/lib/wrapper/authentication.rb +56 -0
- data/lib/wrapper/wrapper.rb +732 -43
- data/spec/samples/valid_artist.json +1 -0
- data/spec/samples/valid_artist_releases.json +1 -0
- data/spec/samples/valid_fields.json +48 -0
- data/spec/samples/valid_folder.json +6 -0
- data/spec/samples/valid_identity.json +6 -0
- data/spec/samples/valid_label.json +1 -0
- data/spec/samples/valid_label_releases.json +1 -0
- data/spec/samples/valid_listing.json +1 -0
- data/spec/samples/valid_master_release.json +1 -0
- data/spec/samples/valid_master_release_versions.json +1 -0
- data/spec/samples/valid_order.json +57 -0
- data/spec/samples/valid_order_messages.json +102 -0
- data/spec/samples/valid_orders.json +68 -0
- data/spec/samples/valid_price_suggestions.json +34 -0
- data/spec/samples/valid_release.json +1 -0
- data/spec/samples/valid_search_results.json +1 -0
- data/spec/samples/valid_user.json +1 -0
- data/spec/samples/valid_user_collection.json +1 -0
- data/spec/samples/valid_user_folder.json +6 -0
- data/spec/samples/valid_user_folders.json +16 -0
- data/spec/samples/valid_user_inventory.json +41 -0
- data/spec/samples/valid_user_profile.json +25 -0
- data/spec/samples/valid_user_wantlist.json +1 -0
- data/spec/samples/valid_wantlist_release.json +41 -0
- data/spec/spec_helper.rb +4 -18
- data/spec/wrapper_methods/add_release_to_user_wantlist_spec.rb +42 -0
- data/spec/wrapper_methods/edit_release_in_user_wantlist_spec.rb +38 -0
- data/spec/wrapper_methods/edit_user_spec.rb +36 -0
- data/spec/wrapper_methods/get_artist_releases_spec.rb +49 -0
- data/spec/wrapper_methods/get_artist_spec.rb +15 -75
- data/spec/wrapper_methods/get_identity_spec.rb +35 -0
- data/spec/wrapper_methods/get_label_releases_spec.rb +49 -0
- data/spec/wrapper_methods/get_label_spec.rb +15 -28
- data/spec/wrapper_methods/get_listing_spec.rb +40 -0
- data/spec/wrapper_methods/get_master_release_spec.rb +16 -42
- data/spec/wrapper_methods/get_master_release_versions_spec.rb +49 -0
- data/spec/wrapper_methods/get_order_messages_spec.rb +36 -0
- data/spec/wrapper_methods/get_order_spec.rb +36 -0
- data/spec/wrapper_methods/get_price_suggestions_spec.rb +36 -0
- data/spec/wrapper_methods/get_release_spec.rb +26 -52
- data/spec/wrapper_methods/get_user_collection_spec.rb +41 -0
- data/spec/wrapper_methods/get_user_folder_spec.rb +46 -0
- data/spec/wrapper_methods/get_user_folders_spec.rb +42 -0
- data/spec/wrapper_methods/get_user_inventory_spec.rb +45 -0
- data/spec/wrapper_methods/get_user_spec.rb +45 -0
- data/spec/wrapper_methods/get_user_wantlist_spec.rb +49 -0
- data/spec/wrapper_methods/search_spec.rb +22 -293
- data/spec/wrapper_spec.rb +124 -45
- metadata +162 -67
- data/Rakefile +0 -26
- data/discogs.gemspec +0 -22
- data/lib/wrapper/resource.rb +0 -80
- data/lib/wrapper/resource_mappings.rb +0 -80
- data/lib/wrapper/resources/artist.rb +0 -40
- data/lib/wrapper/resources/artist_release.rb +0 -28
- data/lib/wrapper/resources/format.rb +0 -11
- data/lib/wrapper/resources/generic_list.rb +0 -29
- data/lib/wrapper/resources/image.rb +0 -11
- data/lib/wrapper/resources/label.rb +0 -16
- data/lib/wrapper/resources/label_release.rb +0 -17
- data/lib/wrapper/resources/master_release.rb +0 -19
- data/lib/wrapper/resources/master_release_version.rb +0 -17
- data/lib/wrapper/resources/release.rb +0 -25
- data/lib/wrapper/resources/release_artist.rb +0 -21
- data/lib/wrapper/resources/release_label.rb +0 -10
- data/lib/wrapper/resources/search.rb +0 -61
- data/lib/wrapper/resources/search_result.rb +0 -17
- data/lib/wrapper/resources/track.rb +0 -19
- data/lib/wrapper/resources/user.rb +0 -11
- data/lib/wrapper/resources/video.rb +0 -11
- data/spec/resource_spec.rb +0 -27
- data/spec/resources/artist_release_spec.rb +0 -59
- data/spec/resources/artist_spec.rb +0 -15
- data/spec/resources/format_spec.rb +0 -41
- data/spec/resources/generic_list_spec.rb +0 -66
- data/spec/resources/image_spec.rb +0 -43
- data/spec/resources/label_release_spec.rb +0 -55
- data/spec/resources/label_spec.rb +0 -15
- data/spec/resources/master_release_spec.rb +0 -15
- data/spec/resources/master_release_version_spec.rb +0 -55
- data/spec/resources/release_artist_spec.rb +0 -43
- data/spec/resources/release_label_spec.rb +0 -31
- data/spec/resources/release_spec.rb +0 -15
- data/spec/resources/search_result_spec.rb +0 -47
- data/spec/resources/search_spec.rb +0 -15
- data/spec/resources/track_spec.rb +0 -56
- data/spec/resources/video_spec.rb +0 -43
@@ -0,0 +1 @@
|
|
1
|
+
{"wants": [{"rating": 0, "resource_url": "http://api.discogs.com/users/abuntine/wants/2360509", "basic_information": {"labels": [{"id": 6621, "resource_url": "http://api.discogs.com/labels/6621", "catno": "4 56 577", "name": "AMIGA", "entity_type": "1"}], "formats": [{"descriptions": ["7\"", "45 RPM", "Single"], "name": "Vinyl", "qty": "1"}], "thumb": "http://api.discogs.com/image/R-150-2360509-1279466424.jpeg", "title": "18 Jahre Sein / Mach Keine Wellen", "artists": [{"join": "", "name": "Formel 1 (2)", "anv": "", "tracks": "", "role": "", "resource_url": "http://api.discogs.com/artists/961630", "id": 961630}], "resource_url": "http://api.discogs.com/releases/2360509", "year": 1985, "id": 2360509}, "id": 2360509, "notes_public": false}, {"rating": 0, "resource_url": "http://api.discogs.com/users/abuntine/wants/2621680", "basic_information": {"labels": [{"id": 223844, "resource_url": "http://api.discogs.com/labels/223844", "catno": "WW8301", "name": "Ashbury Music", "entity_type": "1"}], "formats": [{"descriptions": ["LP", "Album"], "name": "Vinyl", "qty": "1"}], "thumb": "http://api.discogs.com/image/R-150-2621680-1368988727-3696.jpeg", "title": "Endless Skies", "artists": [{"join": "", "name": "Ashbury", "anv": "", "tracks": "", "role": "", "resource_url": "http://api.discogs.com/artists/703220", "id": 703220}], "resource_url": "http://api.discogs.com/releases/2621680", "year": 1983, "id": 2621680}, "id": 2621680, "notes_public": false}, {"rating": 0, "resource_url": "http://api.discogs.com/users/abuntine/wants/1898962", "basic_information": {"labels": [{"id": 162562, "resource_url": "http://api.discogs.com/labels/162562", "catno": "none", "name": "Atom Records (6)", "entity_type": ""}], "formats": [{"descriptions": ["Single Sided"], "name": "Cassette", "qty": "1"}], "thumb": "http://api.discogs.com/image/R-150-1898962-1251019631.jpeg", "title": "Breath Of Death", "artists": [{"join": "", "name": "Krabathor", "anv": "Krabator", "tracks": "", "role": "", "resource_url": "http://api.discogs.com/artists/265899", "id": 265899}], "resource_url": "http://api.discogs.com/releases/1898962", "year": 1988, "id": 1898962}, "id": 1898962, "notes_public": false}, {"rating": 0, "resource_url": "http://api.discogs.com/users/abuntine/wants/3161516", "basic_information": {"labels": [{"id": 227019, "resource_url": "http://api.discogs.com/labels/227019", "catno": "BLP-2", "name": "Barrabas Producciones", "entity_type": "1"}], "formats": [{"descriptions": ["LP"], "name": "Vinyl", "qty": "1"}], "thumb": "http://api.discogs.com/image/R-150-3161516-1318553455.jpeg", "title": "El Mensaje Del Mago", "artists": [{"join": "", "name": "\u00d1u", "anv": "", "tracks": "", "role": "", "resource_url": "http://api.discogs.com/artists/1249321", "id": 1249321}], "resource_url": "http://api.discogs.com/releases/3161516", "year": 1987, "id": 3161516}, "id": 3161516, "notes_public": false}, {"rating": 0, "resource_url": "http://api.discogs.com/users/abuntine/wants/1737331", "basic_information": {"labels": [{"id": 232190, "resource_url": "http://api.discogs.com/labels/232190", "catno": "J1 0018-1 311", "name": "Best IA", "entity_type": "1"}], "formats": [{"descriptions": ["LP"], "name": "Vinyl", "qty": "1"}], "thumb": "http://api.discogs.com/image/R-150-1737331-1336936053-3011.jpeg", "title": "Czech Masters Of Rock Guitar / \u010ce\u0161t\u00ed Mist\u0159i Rockov\u00e9 Kytary", "artists": [{"join": "", "name": "Various", "anv": "", "tracks": "", "role": "", "resource_url": "http://api.discogs.com/artists/194", "id": 194}], "resource_url": "http://api.discogs.com/releases/1737331", "year": 1992, "id": 1737331}, "id": 1737331, "notes_public": false}], "pagination": {"per_page": 5, "items": 77, "page": 1, "urls": {"last": "http://api.discogs.com/users/abuntine/wants?per_page=5&page=16", "next": "http://api.discogs.com/users/abuntine/wants?per_page=5&page=2"}, "pages": 16}}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
{
|
2
|
+
"id": 1,
|
3
|
+
"rating": 0,
|
4
|
+
"notes": "This is a note",
|
5
|
+
"resource_url": "http://api.discogs.com/users/example/wants/1",
|
6
|
+
"basic_information": {
|
7
|
+
"id": 1,
|
8
|
+
"resource_url": "http://api.discogs.com/releases/1",
|
9
|
+
"thumb": "http://api.discogs.com/image/R-150-1-1193812031.jpeg",
|
10
|
+
"title": "Stockholm",
|
11
|
+
"year": 1999,
|
12
|
+
"formats": [
|
13
|
+
{
|
14
|
+
"qty": "2",
|
15
|
+
"descriptions": [ "12\"" ],
|
16
|
+
"name": "Vinyl"
|
17
|
+
}
|
18
|
+
],
|
19
|
+
"labels": [
|
20
|
+
{
|
21
|
+
"name": "Svek",
|
22
|
+
"entity_type": "1",
|
23
|
+
"catno": "SK032",
|
24
|
+
"resource_url": "http://api.discogs.com/labels/5",
|
25
|
+
"id": 5,
|
26
|
+
"entity_type_name": "Label"
|
27
|
+
}
|
28
|
+
],
|
29
|
+
"artists": [
|
30
|
+
{
|
31
|
+
"join": "",
|
32
|
+
"name": "Persuader, The",
|
33
|
+
"anv": "",
|
34
|
+
"tracks": "",
|
35
|
+
"role": "",
|
36
|
+
"resource_url": "http://api.discogs.com/artists/1",
|
37
|
+
"id": 1
|
38
|
+
}
|
39
|
+
]
|
40
|
+
}
|
41
|
+
}
|
data/spec/spec_helper.rb
CHANGED
@@ -6,28 +6,14 @@ require 'rubygems'
|
|
6
6
|
require 'rspec'
|
7
7
|
require File.dirname(__FILE__) + '/../lib/discogs'
|
8
8
|
|
9
|
-
|
10
|
-
read_sample "valid_release.xml"
|
11
|
-
end
|
12
|
-
|
13
|
-
def valid_master_release_xml
|
14
|
-
read_sample "valid_master_release.xml"
|
15
|
-
end
|
16
|
-
|
17
|
-
def valid_artist_xml
|
18
|
-
read_sample "valid_artist.xml"
|
19
|
-
end
|
20
|
-
|
21
|
-
def valid_label_xml
|
22
|
-
read_sample "valid_label.xml"
|
23
|
-
end
|
24
|
-
|
9
|
+
# TODO: Remove after searhc is re-implemented.
|
25
10
|
def valid_search_xml(page=1)
|
26
|
-
|
11
|
+
data = File.read(File.join(File.dirname(__FILE__), "samples", "valid_search_results_#{page}.xml"))
|
12
|
+
data.gsub /\n/, ''
|
27
13
|
end
|
28
14
|
|
29
15
|
def read_sample(filename)
|
30
|
-
data = File.read(File.join(File.dirname(__FILE__), "samples", filename))
|
16
|
+
data = File.read(File.join(File.dirname(__FILE__), "samples", "valid_#{filename}.json"))
|
31
17
|
data.gsub /\n/, ''
|
32
18
|
end
|
33
19
|
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Discogs::Wrapper do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@oauth_access_token = mock(OAuth::AccessToken)
|
7
|
+
@wrapper = Discogs::Wrapper.new("some_user_agent", @oauth_access_token)
|
8
|
+
|
9
|
+
@username = "abuntine"
|
10
|
+
@release_id = "1"
|
11
|
+
end
|
12
|
+
|
13
|
+
describe ".add_release_to_user_wantlist" do
|
14
|
+
|
15
|
+
before do
|
16
|
+
@oauth_response = mock(OAuth::AccessToken, :code => "200", :body => read_sample("wantlist_release"))
|
17
|
+
@oauth_response_as_file = mock(StringIO, :read => read_sample("wantlist_release"))
|
18
|
+
Zlib::GzipReader.should_receive(:new).and_return(@oauth_response_as_file)
|
19
|
+
@oauth_access_token.should_receive(:put).and_return(@oauth_response)
|
20
|
+
|
21
|
+
@wantlist_release = @wrapper.add_release_to_user_wantlist(@username, @release_id)
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "when calling simple wantlist release attributes" do
|
25
|
+
|
26
|
+
it "should have an id" do
|
27
|
+
@wantlist_release.id.should == 1
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should have a rating" do
|
31
|
+
@wantlist_release.rating.should == 0
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should have some basic information" do
|
35
|
+
@wantlist_release.basic_information.title.should == "Stockholm"
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Discogs::Wrapper do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@oauth_access_token = mock(OAuth::AccessToken)
|
7
|
+
@wrapper = Discogs::Wrapper.new("some_user_agent", @oauth_access_token)
|
8
|
+
|
9
|
+
@username = "abuntine"
|
10
|
+
@release_id = "1"
|
11
|
+
end
|
12
|
+
|
13
|
+
describe ".edit_release_in_user_wantlist" do
|
14
|
+
|
15
|
+
before do
|
16
|
+
@oauth_response = mock(OAuth::AccessToken, :code => "200", :body => read_sample("wantlist_release"))
|
17
|
+
@oauth_response_as_file = mock(StringIO, :read => read_sample("wantlist_release"))
|
18
|
+
Zlib::GzipReader.should_receive(:new).and_return(@oauth_response_as_file)
|
19
|
+
@oauth_access_token.should_receive(:post).and_return(@oauth_response)
|
20
|
+
|
21
|
+
@wantlist_release = @wrapper.edit_release_in_user_wantlist(@username, @release_id, {:notes => "This is a note"})
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "when calling simple wantlist release attributes" do
|
25
|
+
|
26
|
+
it "should have an id" do
|
27
|
+
@wantlist_release.id.should == 1
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should have a some notes" do
|
31
|
+
@wantlist_release.notes.should == "This is a note"
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Discogs::Wrapper do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@oauth_access_token = mock(OAuth::AccessToken)
|
7
|
+
@wrapper = Discogs::Wrapper.new("some_user_agent", @oauth_access_token)
|
8
|
+
@username = "abuntine"
|
9
|
+
end
|
10
|
+
|
11
|
+
describe ".edit_user" do
|
12
|
+
|
13
|
+
before do
|
14
|
+
@oauth_response = mock(OAuth::AccessToken, :code => "200", :body => read_sample("user_profile"))
|
15
|
+
@oauth_response_as_file = mock(StringIO, :read => read_sample("user_profile"))
|
16
|
+
Zlib::GzipReader.should_receive(:new).and_return(@oauth_response_as_file)
|
17
|
+
@oauth_access_token.should_receive(:post).and_return(@oauth_response)
|
18
|
+
|
19
|
+
@user_profile = @wrapper.edit_user(@username, {:profile => "This is a new profile"})
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "when calling simple user profile attributes" do
|
23
|
+
|
24
|
+
it "should have a username" do
|
25
|
+
@user_profile.username.should == "abuntine"
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should have a new profile" do
|
29
|
+
@user_profile.profile.should == "This is a new profile"
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Discogs::Wrapper do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@wrapper = Discogs::Wrapper.new("some_user_agent")
|
7
|
+
@artist_id = "313929"
|
8
|
+
end
|
9
|
+
|
10
|
+
describe ".get_artists_releases" do
|
11
|
+
|
12
|
+
before do
|
13
|
+
@http_request = mock(Net::HTTP)
|
14
|
+
@http_response = mock(Net::HTTPResponse, :code => "200", :body => read_sample("artist_releases"))
|
15
|
+
@http_response_as_file = mock(StringIO, :read => read_sample("artist_releases"))
|
16
|
+
Zlib::GzipReader.should_receive(:new).and_return(@http_response_as_file)
|
17
|
+
@http_request.should_receive(:start).and_return(@http_response)
|
18
|
+
Net::HTTP.should_receive(:new).and_return(@http_request)
|
19
|
+
|
20
|
+
@artist_releases = @wrapper.get_artist_releases(@artist_id)
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "when calling simple releases attributes" do
|
24
|
+
|
25
|
+
it "should have 37 releases per page" do
|
26
|
+
@artist_releases.releases.length.should == 37
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should have 37 releases total" do
|
30
|
+
@artist_releases.pagination.items.should == 37
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should have a first release with a title" do
|
34
|
+
@artist_releases.releases.first.title.should == "Frost And Fire"
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should have a first release with a type" do
|
38
|
+
@artist_releases.releases.first.type.should == "master"
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should not have a bogus attribute" do
|
42
|
+
@artist_releases.bogus_attr.should be_nil
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
@@ -4,72 +4,47 @@ describe Discogs::Wrapper do
|
|
4
4
|
|
5
5
|
before do
|
6
6
|
@wrapper = Discogs::Wrapper.new("some_user_agent")
|
7
|
-
@
|
7
|
+
@artist_id = 313929 # Cirith Ungol
|
8
8
|
end
|
9
9
|
|
10
|
-
describe "
|
10
|
+
describe ".get_artist" do
|
11
11
|
|
12
12
|
before do
|
13
13
|
@http_request = mock(Net::HTTP)
|
14
|
-
@http_response = mock(Net::HTTPResponse, :code => "200", :body =>
|
15
|
-
@http_response_as_file = mock(StringIO, :read =>
|
14
|
+
@http_response = mock(Net::HTTPResponse, :code => "200", :body => read_sample("artist"))
|
15
|
+
@http_response_as_file = mock(StringIO, :read => read_sample("artist"))
|
16
16
|
Zlib::GzipReader.should_receive(:new).and_return(@http_response_as_file)
|
17
17
|
@http_request.should_receive(:start).and_return(@http_response)
|
18
18
|
Net::HTTP.should_receive(:new).and_return(@http_request)
|
19
19
|
|
20
|
-
@artist = @wrapper.get_artist(@
|
20
|
+
@artist = @wrapper.get_artist(@artist_id)
|
21
21
|
end
|
22
22
|
|
23
23
|
describe "when calling simple artist attributes" do
|
24
24
|
|
25
25
|
it "should have a name attribute" do
|
26
|
-
@artist.name.should == "
|
26
|
+
@artist.name.should == "Cirith Ungol"
|
27
27
|
end
|
28
28
|
|
29
29
|
it "should have an id attribute" do
|
30
|
-
@artist.id.should ==
|
30
|
+
@artist.id.should == @artist_id
|
31
31
|
end
|
32
32
|
|
33
|
-
it "should have a realname attribute" do
|
34
|
-
@artist.realname.should == "Rootan"
|
35
|
-
end
|
36
|
-
|
37
33
|
it "should have a profile attribute" do
|
38
|
-
@artist.profile.should == "
|
34
|
+
@artist.profile[0..15].should == "Heavy metal band"
|
39
35
|
end
|
40
36
|
|
41
37
|
it "should have a data_quality attribute" do
|
42
|
-
@artist.data_quality.should == "
|
43
|
-
end
|
44
|
-
|
45
|
-
it "should have one or more aliases" do
|
46
|
-
@artist.aliases.should be_instance_of(Array)
|
47
|
-
@artist.aliases[0].should == "Roooot"
|
48
|
-
end
|
49
|
-
|
50
|
-
it "should have one or more name variations" do
|
51
|
-
@artist.namevariations.should be_instance_of(Array)
|
52
|
-
@artist.namevariations[0].should == "Rootan"
|
38
|
+
@artist.data_quality.should == "Correct"
|
53
39
|
end
|
54
40
|
|
55
41
|
it "should have one or more members" do
|
56
42
|
@artist.members.should be_instance_of(Array)
|
57
|
-
@artist.members[0].should == "
|
43
|
+
@artist.members[0].name.should == "Greg Lindstrom"
|
58
44
|
end
|
59
45
|
|
60
|
-
it "should
|
61
|
-
@artist.
|
62
|
-
@artist.main_releases.length.should == 4
|
63
|
-
end
|
64
|
-
|
65
|
-
it "should be able to filter non-bootleg releases" do
|
66
|
-
@artist.bootlegs.should be_instance_of(Array)
|
67
|
-
@artist.bootlegs.length.should == 1
|
68
|
-
end
|
69
|
-
|
70
|
-
it "should be able to filter non-main releases" do
|
71
|
-
@artist.appearances.should be_instance_of(Array)
|
72
|
-
@artist.appearances.length.should == 1
|
46
|
+
it "should have a releases_url attribute" do
|
47
|
+
@artist.releases_url.should =~ /artists\/313929\/releases/
|
73
48
|
end
|
74
49
|
|
75
50
|
end
|
@@ -78,17 +53,16 @@ describe Discogs::Wrapper do
|
|
78
53
|
|
79
54
|
it "should have a traversible list of URLs" do
|
80
55
|
@artist.urls.should be_instance_of(Array)
|
81
|
-
@artist.urls[0].should == "http://www.
|
82
|
-
@artist.urls[1].should == "http://www.
|
56
|
+
@artist.urls[0].should == "http://www.truemetal.org/cirithungol"
|
57
|
+
@artist.urls[1].should == "http://www.myspace.com/cirithungol"
|
83
58
|
end
|
84
59
|
|
85
60
|
it "should have a traversible list of images" do
|
86
61
|
@artist.images.should be_instance_of(Array)
|
87
|
-
@artist.images[0].should be_instance_of(Discogs::Image)
|
88
62
|
end
|
89
63
|
|
90
64
|
it "should have specifications for each image" do
|
91
|
-
specs = [ [
|
65
|
+
specs = [ [ 360, 288, 'secondary' ], [ 170, 176, 'secondary' ] ]
|
92
66
|
@artist.images.each_with_index do |image, index|
|
93
67
|
image.width.should == specs[index][0]
|
94
68
|
image.height.should == specs[index][1]
|
@@ -96,40 +70,6 @@ describe Discogs::Wrapper do
|
|
96
70
|
end
|
97
71
|
end
|
98
72
|
|
99
|
-
it "should have a traversible list of releases" do
|
100
|
-
@artist.releases.should be_instance_of(Array)
|
101
|
-
@artist.releases.length.should == 6
|
102
|
-
@artist.releases[0].should be_instance_of(Discogs::Artist::Release)
|
103
|
-
end
|
104
|
-
|
105
|
-
it "should have an ID for the first release" do
|
106
|
-
@artist.releases[0].id.should == "1805661"
|
107
|
-
end
|
108
|
-
|
109
|
-
it "should have a type for the first release" do
|
110
|
-
@artist.releases[0].release_type.should == "release"
|
111
|
-
end
|
112
|
-
|
113
|
-
it "should have a type for the second release" do
|
114
|
-
@artist.releases[1].release_type.should == "master"
|
115
|
-
end
|
116
|
-
|
117
|
-
it "should have a main release for the second release" do
|
118
|
-
@artist.releases[1].main_release.should == "12345"
|
119
|
-
end
|
120
|
-
|
121
|
-
it "should have a thumb for the second release" do
|
122
|
-
@artist.releases[1].thumb.should == "http://images"
|
123
|
-
end
|
124
|
-
|
125
|
-
it "should have a year for the first release" do
|
126
|
-
@artist.releases[0].year.should == "1991"
|
127
|
-
end
|
128
|
-
|
129
|
-
it "should have a label for the third release" do
|
130
|
-
@artist.releases[2].label.should == "Apollo"
|
131
|
-
end
|
132
|
-
|
133
73
|
end
|
134
74
|
|
135
75
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Discogs::Wrapper do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@oauth_access_token = mock(OAuth::AccessToken)
|
7
|
+
@wrapper = Discogs::Wrapper.new("some_user_agent", @oauth_access_token)
|
8
|
+
end
|
9
|
+
|
10
|
+
describe ".get_identity" do
|
11
|
+
|
12
|
+
before do
|
13
|
+
@oauth_response = mock(OAuth::AccessToken, :code => "200", :body => read_sample("identity"))
|
14
|
+
@oauth_response_as_file = mock(StringIO, :read => read_sample("identity"))
|
15
|
+
Zlib::GzipReader.should_receive(:new).and_return(@oauth_response_as_file)
|
16
|
+
@oauth_access_token.should_receive(:get).and_return(@oauth_response)
|
17
|
+
|
18
|
+
@identity = @wrapper.get_identity
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "when calling simple identity attributes" do
|
22
|
+
|
23
|
+
it "should have a username" do
|
24
|
+
@identity.username.should == "example"
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should have a consumer_name" do
|
28
|
+
@identity.consumer_name.should == "Your Application Name"
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Discogs::Wrapper do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@wrapper = Discogs::Wrapper.new("some_user_agent")
|
7
|
+
@label_id = "9800"
|
8
|
+
end
|
9
|
+
|
10
|
+
describe ".get_labels_releases" do
|
11
|
+
|
12
|
+
before do
|
13
|
+
@http_request = mock(Net::HTTP)
|
14
|
+
@http_response = mock(Net::HTTPResponse, :code => "200", :body => read_sample("label_releases"))
|
15
|
+
@http_response_as_file = mock(StringIO, :read => read_sample("label_releases"))
|
16
|
+
Zlib::GzipReader.should_receive(:new).and_return(@http_response_as_file)
|
17
|
+
@http_request.should_receive(:start).and_return(@http_response)
|
18
|
+
Net::HTTP.should_receive(:new).and_return(@http_request)
|
19
|
+
|
20
|
+
@label_releases = @wrapper.get_label_releases(@label_id)
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "when calling simple releases attributes" do
|
24
|
+
|
25
|
+
it "should have 8 releases per page" do
|
26
|
+
@label_releases.releases.length.should == 8
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should have 8 releases total" do
|
30
|
+
@label_releases.pagination.items.should == 8
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should have a first release with a Cat No" do
|
34
|
+
@label_releases.releases.first.catno.should == "SSS 001"
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should have a first release with a status" do
|
38
|
+
@label_releases.releases.first.status.should == "Accepted"
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should not have a bogus attribute" do
|
42
|
+
@label_releases.bogus_attribute.should be_nil
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|