beatport 0.1.3 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +7 -5
- data/Gemfile.lock +22 -20
- data/Rakefile +7 -7
- data/VERSION +1 -1
- data/beatport.gemspec +56 -20
- data/lib/beatport/catalog.rb +2 -0
- data/lib/beatport/catalog/djprofile.rb +7 -0
- data/lib/beatport/catalog/part.rb +7 -0
- data/lib/beatport/support/query_builder.rb +1 -1
- data/spec/catalog/account_type_spec.rb +18 -5
- data/spec/catalog/artist_spec.rb +61 -41
- data/spec/catalog/audio_format_spec.rb +12 -4
- data/spec/catalog/autocomplete_spec.rb +9 -3
- data/spec/catalog/chart_spec.rb +11 -5
- data/spec/catalog/country_spec.rb +4 -2
- data/spec/catalog/currency_spec.rb +3 -1
- data/spec/catalog/genre_spec.rb +30 -12
- data/spec/catalog/home_spec.rb +7 -5
- data/spec/catalog/label_spec.rb +21 -10
- data/spec/catalog/release_spec.rb +11 -7
- data/spec/catalog/search_spec.rb +22 -8
- data/spec/catalog/slide_spec.rb +4 -0
- data/spec/catalog/source_type_spec.rb +3 -1
- data/spec/catalog/track_spec.rb +9 -7
- data/spec/fixtures/account_type_all.yml +40 -0
- data/spec/fixtures/account_type_visa.yml +38 -0
- data/spec/fixtures/artist_7181.yml +43 -0
- data/spec/fixtures/artist_7181_7182.yml +44 -0
- data/spec/fixtures/artist_7181_top_downloads.yml +105 -0
- data/spec/fixtures/artist_all.yml +64 -0
- data/spec/fixtures/artist_all_5_per_page.yml +53 -0
- data/spec/fixtures/artist_all_for_facets.yml +38 -0
- data/spec/fixtures/artist_all_return_facets.yml +144 -0
- data/spec/fixtures/artist_all_sorted.yml +44 -0
- data/spec/fixtures/audio_format_2.yml +38 -0
- data/spec/fixtures/audio_format_all.yml +44 -0
- data/spec/fixtures/audio_format_wav.yml +38 -0
- data/spec/fixtures/autocomplete_lutzen.yml +41 -0
- data/spec/fixtures/autocomplete_lutzen_page_3.yml +39 -0
- data/spec/fixtures/chart_15722.yml +39 -0
- data/spec/fixtures/country_au.yml +43 -0
- data/spec/fixtures/currency_all.yml +127 -0
- data/spec/fixtures/genre_7.yml +38 -0
- data/spec/fixtures/genre_all.yml +47 -0
- data/spec/fixtures/genre_all_with_subgenres.yml +62 -0
- data/spec/fixtures/genre_invalid.yml +38 -0
- data/spec/fixtures/label_1390.yml +43 -0
- data/spec/fixtures/label_all.yml +76 -0
- data/spec/fixtures/release_164808.yml +55 -0
- data/spec/fixtures/search_ANJCDCO011D.yml +38 -0
- data/spec/fixtures/search_anjunadeep_genre_trance.yml +101 -0
- data/spec/fixtures/search_archipel.yml +102 -0
- data/spec/fixtures/search_believe_2004.yml +220 -0
- data/spec/fixtures/source_type_all.yml +38 -0
- data/spec/fixtures/track_1217790.yml +45 -0
- data/spec/spec_helper.rb +7 -0
- metadata +179 -134
@@ -3,7 +3,9 @@ require 'spec_helper'
|
|
3
3
|
module Beatport::Catalog
|
4
4
|
describe "AudioFormat" do
|
5
5
|
describe 'structure' do
|
6
|
-
subject
|
6
|
+
subject do
|
7
|
+
VCR.use_cassette('audio_format_all') { AudioFormat.all.first }
|
8
|
+
end
|
7
9
|
|
8
10
|
it { should be_an(AudioFormat) }
|
9
11
|
its (:id) { should == 1 }
|
@@ -12,19 +14,25 @@ module Beatport::Catalog
|
|
12
14
|
end
|
13
15
|
|
14
16
|
describe '.all' do
|
15
|
-
subject
|
17
|
+
subject do
|
18
|
+
VCR.use_cassette('audio_format_all') { AudioFormat.all }
|
19
|
+
end
|
16
20
|
|
17
21
|
its (:length) { should be > 1 }
|
18
22
|
end
|
19
23
|
|
20
24
|
describe '.find' do
|
21
25
|
context "by id" do
|
22
|
-
subject
|
26
|
+
subject do
|
27
|
+
VCR.use_cassette("audio_format_2") { AudioFormat.find(2) }
|
28
|
+
end
|
23
29
|
its (:name) { should == "m4a" }
|
24
30
|
end
|
25
31
|
|
26
32
|
context "by name" do
|
27
|
-
subject
|
33
|
+
subject do
|
34
|
+
VCR.use_cassette("audio_format_wav") { AudioFormat.find('wav') }
|
35
|
+
end
|
28
36
|
its (:name) { should == "wav" }
|
29
37
|
end
|
30
38
|
end
|
@@ -3,13 +3,17 @@ require 'spec_helper'
|
|
3
3
|
module Beatport::Catalog
|
4
4
|
describe Autocomplete do
|
5
5
|
describe 'stucture' do
|
6
|
-
subject
|
6
|
+
subject do
|
7
|
+
VCR.use_cassette("autocomplete_lutzen") { Autocomplete.query('lutzen').first }
|
8
|
+
end
|
7
9
|
|
8
10
|
its (:'name.downcase') { should match(/lutzen/) }
|
9
11
|
end
|
10
12
|
|
11
13
|
describe 'collection' do
|
12
|
-
subject
|
14
|
+
subject do
|
15
|
+
VCR.use_cassette("autocomplete_lutzen") { Autocomplete.query('lutzen') }
|
16
|
+
end
|
13
17
|
|
14
18
|
its (:host) { should == "api.beatport.com" }
|
15
19
|
its (:path) { should == "/catalog/autocomplete" }
|
@@ -25,7 +29,9 @@ module Beatport::Catalog
|
|
25
29
|
end
|
26
30
|
|
27
31
|
describe '.query' do
|
28
|
-
subject
|
32
|
+
subject do
|
33
|
+
VCR.use_cassette("autocomplete_lutzen_page_3") { Autocomplete.query('lutzen', :page => 3, :per_page => 2) }
|
34
|
+
end
|
29
35
|
|
30
36
|
its (:page) { should == 3 }
|
31
37
|
its (:per_page) { should == 2 }
|
data/spec/catalog/chart_spec.rb
CHANGED
@@ -1,10 +1,14 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
module Beatport::Catalog
|
4
6
|
describe Chart do
|
5
7
|
|
6
8
|
describe 'structure' do
|
7
|
-
subject
|
9
|
+
subject do
|
10
|
+
VCR.use_cassette('chart_15722') { Chart.find(15722) }
|
11
|
+
end
|
8
12
|
|
9
13
|
it { should be_a(Chart) }
|
10
14
|
its (:id) { should == 15722 }
|
@@ -17,15 +21,17 @@ module Beatport::Catalog
|
|
17
21
|
its (:'audio_format_fee.wav.to_s') { should == "9.00" }
|
18
22
|
its (:'audio_format_fee.aiff.to_s') { should == "9.00" }
|
19
23
|
specify { subject.genres.map(&:name).should == ["Trance"] }
|
20
|
-
its (:'images.small.url') { should == "http://geo-media.beatport.com/
|
21
|
-
its (:'images.medium.url') { should == "http://geo-media.beatport.com/
|
22
|
-
its (:'images.large.url') { should == "http://geo-media.beatport.com/
|
24
|
+
its (:'images.small.url') { should == "http://geo-media.beatport.com/image/491534.jpg"}
|
25
|
+
its (:'images.medium.url') { should == "http://geo-media.beatport.com/image/412921.jpg"}
|
26
|
+
its (:'images.large.url') { should == "http://geo-media.beatport.com/image/412922.jpg"}
|
23
27
|
its (:'tracks.length') { should == 9 }
|
24
28
|
end
|
25
29
|
|
26
30
|
describe '.find' do
|
27
31
|
context 'with a single id' do
|
28
|
-
subject
|
32
|
+
subject do
|
33
|
+
VCR.use_cassette('chart_15722') { Chart.find(15722) }
|
34
|
+
end
|
29
35
|
its (:id) { should == 15722 }
|
30
36
|
end
|
31
37
|
|
@@ -3,14 +3,16 @@ require 'spec_helper'
|
|
3
3
|
module Beatport::Catalog
|
4
4
|
describe Country do
|
5
5
|
describe 'structure' do
|
6
|
-
subject
|
6
|
+
subject do
|
7
|
+
VCR.use_cassette("country_au") { Country.find('au') }
|
8
|
+
end
|
7
9
|
|
8
10
|
it { should be_a(Country) }
|
9
11
|
its (:id) { should == 5 }
|
10
12
|
its (:code) { should == "AUS" }
|
11
13
|
its (:code_short) { should == "AU" }
|
12
14
|
its (:name) { should == "Australia" }
|
13
|
-
its (:vat_enabled) { should ==
|
15
|
+
its (:vat_enabled) { should == "0" }
|
14
16
|
its (:vat_rate) { should == 0 }
|
15
17
|
its (:iso3166_3) { should == "AUS" }
|
16
18
|
its (:iso3166_2) { should == "AU" }
|
@@ -3,7 +3,9 @@ require 'spec_helper'
|
|
3
3
|
module Beatport::Catalog
|
4
4
|
describe Currency do
|
5
5
|
describe "structure" do
|
6
|
-
subject
|
6
|
+
subject do
|
7
|
+
VCR.use_cassette("currency_all") { Currency.all.first }
|
8
|
+
end
|
7
9
|
|
8
10
|
it { should be_a(Currency) }
|
9
11
|
its (:id) { should == 1 }
|
data/spec/catalog/genre_spec.rb
CHANGED
@@ -5,14 +5,16 @@ module Beatport::Catalog
|
|
5
5
|
describe Genre do
|
6
6
|
|
7
7
|
describe "structure" do
|
8
|
-
subject
|
8
|
+
subject do
|
9
|
+
VCR.use_cassette("genre_7") { Genre.find(7) }
|
10
|
+
end
|
9
11
|
|
10
12
|
it { should be_a(Genre) }
|
11
13
|
its (:name) { should == "Trance" }
|
12
14
|
its (:slug) { should == "trance" }
|
13
15
|
its (:'subgenres.length') { should be > 1}
|
14
|
-
its (:'slideshow.header.length') { should be > 1 }
|
15
|
-
its (:'slideshow.small.length') { should be > 1 }
|
16
|
+
#its (:'slideshow.header.length') { should be > 1 }
|
17
|
+
#its (:'slideshow.small.length') { should be > 1 }
|
16
18
|
its (:'top_downloads.length') { should be > 1 }
|
17
19
|
# it { @genre.features.length.should be > 1}
|
18
20
|
|
@@ -29,39 +31,53 @@ module Beatport::Catalog
|
|
29
31
|
|
30
32
|
describe '.find' do
|
31
33
|
it "should retrieve information about the trance genre via its id" do
|
32
|
-
|
34
|
+
VCR.use_cassette("genre_7") do
|
35
|
+
Genre.find(7).name.should == "Trance"
|
36
|
+
end
|
33
37
|
end
|
34
38
|
|
35
39
|
it "should retrieve information about the trance genre via the slug" do
|
40
|
+
pending "find by slug deprecated?"
|
41
|
+
|
36
42
|
Genre.find('trance').name.should == "Trance"
|
37
43
|
end
|
38
44
|
|
39
45
|
it "should retrieve information about the trance genre via the slug passed as a symbol" do
|
46
|
+
pending "find by slug deprecated?"
|
47
|
+
|
40
48
|
Genre.find(:trance).name.should == "Trance"
|
41
49
|
end
|
42
50
|
|
43
51
|
it "should return nil with an invalid id" do
|
44
|
-
|
45
|
-
|
52
|
+
VCR.use_cassette("genre_invalid") do
|
53
|
+
genre = Beatport::Catalog.genre(9999999)
|
54
|
+
genre.should be nil
|
55
|
+
end
|
46
56
|
end
|
47
57
|
end
|
48
58
|
|
49
59
|
describe '.all' do
|
50
60
|
it "should retrieve all genres" do
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
61
|
+
VCR.use_cassette("genre_all") do
|
62
|
+
genres = Genre.all
|
63
|
+
genres.length.should > 1
|
64
|
+
genres.length.should == genres.count
|
65
|
+
genres.length.should == genres.per_page
|
66
|
+
end
|
55
67
|
end
|
56
68
|
|
57
69
|
it "should retrieve genres with their subgenres" do
|
58
|
-
|
59
|
-
|
70
|
+
VCR.use_cassette("genre_all_with_subgenres") do
|
71
|
+
genres = Genre.all(:subgenres => true)
|
72
|
+
genres.first.subgenres.length.should be > 1
|
73
|
+
end
|
60
74
|
end
|
61
75
|
end
|
62
76
|
|
63
77
|
describe '.overview' do
|
64
78
|
it "should retrieve an overview" do
|
79
|
+
pending "deprecated?"
|
80
|
+
|
65
81
|
overview = Genre.overview
|
66
82
|
overview.length.should be > 0
|
67
83
|
overview.each do |genre|
|
@@ -83,6 +99,8 @@ module Beatport::Catalog
|
|
83
99
|
|
84
100
|
describe '#slideshow' do
|
85
101
|
it "should return the slideshow of a genre loaded via find" do
|
102
|
+
pending "deprecated?"
|
103
|
+
|
86
104
|
genre = Genre.find(7)
|
87
105
|
genre.slideshow.header.length.should be > 1
|
88
106
|
end
|
data/spec/catalog/home_spec.rb
CHANGED
@@ -3,13 +3,15 @@ require 'spec_helper'
|
|
3
3
|
module Beatport::Catalog
|
4
4
|
describe Home do
|
5
5
|
describe '.get' do
|
6
|
+
pending "deprecated?"
|
7
|
+
|
6
8
|
subject { Home.get }
|
7
9
|
|
8
|
-
it { should be_a(Home) }
|
9
|
-
its (:'slideshow.header.length') { should be >= 1 }
|
10
|
-
its (:'slideshow.feature.length') { should be > 1 }
|
11
|
-
its (:'features.length') { should be > 1 }
|
12
|
-
its (:'top_downloads.length') { should be > 1 }
|
10
|
+
#it { should be_a(Home) }
|
11
|
+
#its (:'slideshow.header.length') { should be >= 1 }
|
12
|
+
#its (:'slideshow.feature.length') { should be > 1 }
|
13
|
+
#its (:'features.length') { should be > 1 }
|
14
|
+
#its (:'top_downloads.length') { should be > 1 }
|
13
15
|
end
|
14
16
|
end
|
15
17
|
end
|
data/spec/catalog/label_spec.rb
CHANGED
@@ -4,22 +4,25 @@ module Beatport::Catalog
|
|
4
4
|
describe Label do
|
5
5
|
|
6
6
|
describe 'structure' do
|
7
|
-
subject
|
7
|
+
subject do
|
8
|
+
VCR.use_cassette("label_1390") { Label.find(1390) }
|
9
|
+
end
|
8
10
|
|
9
11
|
it { should be_a(Label) }
|
10
12
|
its (:id) { should == 1390 }
|
11
13
|
its (:type) { should == "label" }
|
12
14
|
its (:name) { should == "Anjunadeep" }
|
13
15
|
its (:slug) { should == "anjunadeep" }
|
14
|
-
|
15
|
-
its (:
|
16
|
+
pending "source type is no longer returned?"
|
17
|
+
#its (:source_type) { should == ["store", "mobile", "sushi"] }
|
18
|
+
its (:last_publish_date) { should == Date.new(2012, 10, 8) }
|
16
19
|
its (:biography) { should == "" }
|
17
20
|
its (:'genres.length') { should be > 1 }
|
18
21
|
its (:'sub_genres.length') { should be > 0 }
|
19
22
|
its (:display_level) { should == 1 }
|
20
|
-
its (:'images.small.url') { should == "http://geo-media.beatport.com/
|
21
|
-
its (:'images.medium.url') { should == "http://geo-media.beatport.com/
|
22
|
-
its (:'images.banner.url') { should == "http://geo-media.beatport.com/
|
23
|
+
its (:'images.small.url') { should == "http://geo-media.beatport.com/image/3406.jpg"}
|
24
|
+
its (:'images.medium.url') { should == "http://geo-media.beatport.com/image/1191.jpg"}
|
25
|
+
its (:'images.banner.url') { should == "http://geo-media.beatport.com/image/345152.jpg"}
|
23
26
|
# its (:'top_downloads.length') { should be > 1 }
|
24
27
|
# its (:'featured_releases.length') { should be > 1 }
|
25
28
|
# its (:'most_popular_releases.length') { should be > 1 }
|
@@ -27,15 +30,19 @@ module Beatport::Catalog
|
|
27
30
|
|
28
31
|
describe '.find' do
|
29
32
|
it "should get Anjunadeep give id 1390" do
|
30
|
-
|
31
|
-
|
33
|
+
VCR.use_cassette("label_1390") do
|
34
|
+
label = Label.find(1390)
|
35
|
+
label.id.should == 1390
|
36
|
+
end
|
32
37
|
end
|
33
38
|
end
|
34
39
|
|
35
40
|
describe '.all' do
|
36
41
|
it "should get arbitrary labels" do
|
37
|
-
|
38
|
-
|
42
|
+
VCR.use_cassette("label_all") do
|
43
|
+
labels = Label.all
|
44
|
+
labels.length.should == 10
|
45
|
+
end
|
39
46
|
end
|
40
47
|
|
41
48
|
it "should get the first page with 5 labels per page" do
|
@@ -88,11 +95,15 @@ module Beatport::Catalog
|
|
88
95
|
|
89
96
|
describe '.featured' do
|
90
97
|
it "should get the featured labels for the Home page" do
|
98
|
+
pending "deprecated?"
|
99
|
+
|
91
100
|
labels = Label.featured
|
92
101
|
labels.length.should be > 1
|
93
102
|
end
|
94
103
|
|
95
104
|
it "should get the featured labels for the Trance page" do
|
105
|
+
pending "deprecated?"
|
106
|
+
|
96
107
|
labels = Label.featured :genre_id => 7
|
97
108
|
labels.length.should be > 1
|
98
109
|
labels.each do |label|
|
@@ -4,7 +4,9 @@ module Beatport::Catalog
|
|
4
4
|
describe Release do
|
5
5
|
|
6
6
|
describe 'structure' do
|
7
|
-
subject
|
7
|
+
subject do
|
8
|
+
VCR.use_cassette("release_164808") { Release.find(164808) }
|
9
|
+
end
|
8
10
|
|
9
11
|
it { should be_a(Release) }
|
10
12
|
its (:id) { should == 164808 }
|
@@ -18,17 +20,17 @@ module Beatport::Catalog
|
|
18
20
|
its (:current_status) { should == "General Content"}
|
19
21
|
its (:catalog_number) { should == "ANJCDCO011D"}
|
20
22
|
its (:purchasable) { should == true }
|
21
|
-
its (:'price.to_s') { should == "
|
23
|
+
its (:'price.to_s') { should == "9.99" }
|
22
24
|
its (:'tracks_price.to_s') { should == "43.21" }
|
23
25
|
its (:'audio_format_fee.wav.to_s') { should == '29.00'}
|
24
26
|
its (:'audio_format_fee.aiff.to_s') { should == '29.00'}
|
25
27
|
its (:'label.id') { should == 804 }
|
26
28
|
specify { subject.artists.map(&:name).should include("Paul Keeley") }
|
27
|
-
specify { subject.genres.map(&:name).should == ["
|
28
|
-
its (:'images.small.url') { should == "http://geo-media.beatport.com/
|
29
|
-
its (:'images.medium.url') { should == "http://geo-media.beatport.com/
|
30
|
-
its (:'images.large.url') { should == "http://geo-media.beatport.com/
|
31
|
-
its (:'discount.to_s') { should == "
|
29
|
+
specify { subject.genres.map(&:name).sort.should == ["Progressive House", "Trance"] }
|
30
|
+
its (:'images.small.url') { should == "http://geo-media.beatport.com/image/392699.jpg" }
|
31
|
+
its (:'images.medium.url') { should == "http://geo-media.beatport.com/image/392700.jpg" }
|
32
|
+
its (:'images.large.url') { should == "http://geo-media.beatport.com/image/392701.jpg" }
|
33
|
+
its (:'discount.to_s') { should == "33.22" }
|
32
34
|
# its (:'recommendations.releases.length') { should > 1 }
|
33
35
|
end
|
34
36
|
|
@@ -114,6 +116,8 @@ module Beatport::Catalog
|
|
114
116
|
end
|
115
117
|
|
116
118
|
it "should not give the same releases with justAdded true and false" do
|
119
|
+
pending "test will not give consistent results, revisit"
|
120
|
+
|
117
121
|
featured = Release.featured :genre_id => 7
|
118
122
|
just_added = Release.featured :genre_id => 7, :just_added => true
|
119
123
|
|
data/spec/catalog/search_spec.rb
CHANGED
@@ -4,20 +4,34 @@ module Beatport::Catalog
|
|
4
4
|
describe Search do
|
5
5
|
describe '.get' do
|
6
6
|
it "should perform a simple search with just a string" do
|
7
|
-
|
8
|
-
|
7
|
+
VCR.use_cassette("search_believe_2004") do
|
8
|
+
results = Search.query('believe 2004')
|
9
|
+
results.length.should be >= 1
|
10
|
+
end
|
9
11
|
end
|
10
12
|
|
13
|
+
it "should perform a simple search with just a string" do
|
14
|
+
VCR.use_cassette("search_archipel") do
|
15
|
+
results = Search.query('Archipel')
|
16
|
+
results.length.should be >= 1
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
|
11
21
|
it "should not find a release by catalogue number" do
|
12
|
-
|
13
|
-
|
22
|
+
VCR.use_cassette("search_ANJCDCO011D") do
|
23
|
+
results = Search.query("ANJCDCO011D")
|
24
|
+
results.length.should be 0
|
25
|
+
end
|
14
26
|
end
|
15
27
|
|
16
28
|
it "should find all content for Anjunadeep that has something to do with Trance" do
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
29
|
+
VCR.use_cassette("search_anjunadeep_genre_trance") do
|
30
|
+
results = Search.query('anjunadeep', :facets => { :genre_name => 'Trance' })
|
31
|
+
results.length.should be > 1
|
32
|
+
|
33
|
+
results.grouped.keys.sort.should == ["Chart", "Label", "Release", "Track"]
|
34
|
+
end
|
21
35
|
end
|
22
36
|
end
|
23
37
|
end
|
data/spec/catalog/slide_spec.rb
CHANGED
@@ -2,6 +2,9 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
module Beatport::Catalog
|
4
4
|
describe Slide do
|
5
|
+
pending "deprecated?"
|
6
|
+
|
7
|
+
=begin
|
5
8
|
describe '.header' do
|
6
9
|
it "should get the header slides for the home page" do
|
7
10
|
slides = Slide.header
|
@@ -37,6 +40,7 @@ module Beatport::Catalog
|
|
37
40
|
slides.length.should be > 1
|
38
41
|
end
|
39
42
|
end
|
43
|
+
=end
|
40
44
|
end
|
41
45
|
end
|
42
46
|
|
@@ -3,7 +3,9 @@ require 'spec_helper'
|
|
3
3
|
module Beatport::Catalog
|
4
4
|
describe SourceType do
|
5
5
|
describe "structure" do
|
6
|
-
subject
|
6
|
+
subject do
|
7
|
+
VCR.use_cassette("source_type_all") { SourceType.all.first }
|
8
|
+
end
|
7
9
|
|
8
10
|
it { should be_a(SourceType) }
|
9
11
|
its (:id) { should == 1 }
|
data/spec/catalog/track_spec.rb
CHANGED
@@ -4,13 +4,15 @@ module Beatport::Catalog
|
|
4
4
|
describe Track do
|
5
5
|
describe 'lazy loading' do
|
6
6
|
it "should lazy load artists" do
|
7
|
-
pending
|
7
|
+
pending "Not implemented yet"
|
8
8
|
track = Track.all(:per_page => 1, :page => 1).first
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
12
|
describe 'structure' do
|
13
|
-
subject
|
13
|
+
subject do
|
14
|
+
VCR.use_cassette('track_1217790') { Track.find(1217790) }
|
15
|
+
end
|
14
16
|
|
15
17
|
it { should be_a(Track) }
|
16
18
|
its (:id) { should == 1217790 }
|
@@ -21,7 +23,7 @@ module Beatport::Catalog
|
|
21
23
|
its (:title) { should == "Tonight (IMS Anthem 2009) (Above & Beyond Remix)"}
|
22
24
|
its (:release_date) { should == Date.new(2010,05,17) }
|
23
25
|
its (:publish_date) { should == Date.new(2010,05,17) }
|
24
|
-
its (:sample_url) { should == 'http://geo-samples.beatport.com/
|
26
|
+
its (:sample_url) { should == 'http://geo-samples.beatport.com/lofi/1217790.LOFI.mp3' }
|
25
27
|
its (:rtmp_stream_url) { should == 'rtmp://geo-rtmp-samples.beatport.com/beatport/_definst_/mp3:lofi_samples/items/volumes/volume7/items/1000000/200000/10000/7000/700/90/1217790.LOFI'}
|
26
28
|
its (:exclusive) { should be_false }
|
27
29
|
its (:'price.to_s') { should == "1.49" }
|
@@ -39,10 +41,10 @@ module Beatport::Catalog
|
|
39
41
|
its (:charts) { should == [] }
|
40
42
|
its (:'release.id') { should == 245137 }
|
41
43
|
its (:'label.id') { should == 495}
|
42
|
-
its (:'images.small.url') { should == 'http://geo-media.beatport.com/
|
43
|
-
its (:'images.medium.url') { should == 'http://geo-media.beatport.com/
|
44
|
-
its (:'images.large.url') { should == 'http://geo-media.beatport.com/
|
45
|
-
its (:'images.waveform.url') { should == 'http://geo-media.beatport.com/
|
44
|
+
its (:'images.small.url') { should == 'http://geo-media.beatport.com/image/674759.jpg' }
|
45
|
+
its (:'images.medium.url') { should == 'http://geo-media.beatport.com/image/674760.jpg' }
|
46
|
+
its (:'images.large.url') { should == 'http://geo-media.beatport.com/image/674761.jpg' }
|
47
|
+
its (:'images.waveform.url') { should == 'http://geo-media.beatport.com/image/1268229.png' }
|
46
48
|
end
|
47
49
|
|
48
50
|
describe '.find' do
|