maksar-tmdb_party 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,32 @@
1
+ require 'rubygems'
2
+ require 'test/unit'
3
+ require 'context'
4
+ require 'fakeweb'
5
+
6
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
7
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
8
+ require 'tmdb_party'
9
+
10
+ class Test::Unit::TestCase
11
+ end
12
+
13
+ def fixture_file(filename)
14
+ return '' if filename == ''
15
+ file_path = File.expand_path(File.dirname(__FILE__) + '/fixtures/' + filename)
16
+ File.read(file_path)
17
+ end
18
+
19
+ def tmdb_url(url)
20
+ url =~ /^http/ ? url : "http://api.themoviedb.org/2.1#{url}"
21
+ end
22
+
23
+ def stub_get(url, filename, status=nil)
24
+ options = {:body => fixture_file(filename)}
25
+ options.merge!({:status => status}) unless status.nil?
26
+
27
+ FakeWeb.register_uri(:get, tmdb_url(url), options)
28
+ end
29
+
30
+ def stub_post(url, filename)
31
+ FakeWeb.register_uri(:post, tmdb_url(url), :string => fixture_file(filename))
32
+ end
@@ -0,0 +1,148 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class TestTmdbParty < Test::Unit::TestCase
4
+
5
+ before do
6
+ @tmdb = TMDBParty::Base.new('key')
7
+ end
8
+
9
+ after do
10
+ FakeWeb.clean_registry
11
+ end
12
+
13
+ test "searching for transformers" do
14
+ stub_get('/Movie.search/en/json/key/Transformers', 'search.json')
15
+ stub_get('/Movie.getInfo/en/json/key/1858', 'transformers.json')
16
+
17
+ results = @tmdb.search('Transformers')
18
+
19
+ assert_equal 5, results.length
20
+
21
+ transformers = results.detect{|m| m.name == "Transformers"}
22
+
23
+ # check that the attributes are populated
24
+ assert_equal 52, transformers.popularity
25
+ assert_equal 1.0, transformers.score
26
+ assert_equal 1858, transformers.id
27
+ assert_equal 'tt0418279', transformers.imdb_id
28
+ assert_equal Date.new(2007, 7, 4), transformers.released
29
+
30
+ # how about some that are loaded lazily
31
+ assert_equal "http://www.transformersmovie.com/", transformers.homepage
32
+ assert_equal "http://www.youtube.com/watch?v=c0PXr8GV2_Q", transformers.trailer
33
+
34
+ assert_equal 3, transformers.genres.length
35
+
36
+ genre = transformers.genres.detect{|g| g.name == "Adventure"}
37
+ assert_equal "http://themoviedb.org/encyclopedia/category/12", genre.url
38
+
39
+ assert_equal 132, transformers.runtime
40
+ assert_equal 36, transformers.cast.length
41
+
42
+ end
43
+
44
+ test "getting a single result" do
45
+ stub_get('/Movie.search/en/json/key/sweeney%20todd', 'single_result.json')
46
+
47
+ results = @tmdb.search('sweeney todd')
48
+ sweeney_todd = results.first
49
+
50
+ assert_equal 1, results.length
51
+ assert_equal 'tt0408236', sweeney_todd.imdb_id
52
+ end
53
+
54
+ test "finding transformers via imdb id" do
55
+ stub_get('/Movie.imdbLookup/en/json/key/tt0418279', 'imdb_search.json')
56
+ stub_get('/Movie.getInfo/en/json/key/1858', 'transformers.json')
57
+
58
+
59
+ result = @tmdb.imdb_lookup('tt0418279')
60
+
61
+ # check that the attributes are populated
62
+ assert_equal 52.0, result.popularity
63
+ assert_equal 1858, result.id
64
+ assert_equal 'tt0418279', result.imdb_id
65
+ assert_equal Date.new(2007, 7, 4), result.released
66
+ #
67
+ # how about some that are loaded lazily
68
+ assert_equal "http://www.transformersmovie.com/", result.homepage
69
+ assert_equal "http://www.youtube.com/watch?v=c0PXr8GV2_Q", result.trailer
70
+
71
+ assert_equal 3, result.genres.length
72
+
73
+ genre = result.genres.detect{|g| g.name == "Adventure"}
74
+ assert_equal "http://themoviedb.org/encyclopedia/category/12", genre.url
75
+
76
+ assert_equal 132, result.runtime
77
+ assert_equal 36, result.cast.length
78
+ end
79
+
80
+ test "NOT finding transformers via imdb id" do
81
+ stub_get('/Movie.imdbLookup/en/json/key/tt0418279dd', 'imdb_no_results.json')
82
+ result = @tmdb.imdb_lookup('tt0418279dd')
83
+ assert_nil result
84
+ end
85
+
86
+ test "no people found" do
87
+ stub_get('/Movie.search/en/json/key/rad', 'rad.json')
88
+ stub_get('/Movie.getInfo/en/json/key/13841', 'no_groups.json')
89
+
90
+ rad = @tmdb.search('rad').first
91
+
92
+ assert_equal [], rad.cast
93
+ assert_equal [], rad.genres
94
+
95
+ assert_equal 0, rad.directors.length
96
+ assert_equal 0, rad.writers.length
97
+ assert_equal 0, rad.actors.length
98
+ end
99
+
100
+ test "specific people" do
101
+ stub_get('/Movie.imdbLookup/en/json/key/tt0418279', 'imdb_search.json')
102
+ stub_get('/Movie.getInfo/en/json/key/1858', 'transformers.json')
103
+
104
+ result = @tmdb.imdb_lookup('tt0418279')
105
+
106
+ assert_equal 1, result.directors.length
107
+ assert_equal 0, result.writers.length
108
+ assert_equal 17, result.actors.length
109
+ end
110
+
111
+ test "posters" do
112
+ stub_get('/Movie.search/en/json/key/Transformers', 'search.json')
113
+ stub_get('/Movie.getInfo/en/json/key/1858', 'transformers.json')
114
+
115
+ result = @tmdb.search('Transformers').first
116
+
117
+ assert_equal 10, result.posters.size
118
+ assert_equal 4, result.posters.first.keys.size
119
+
120
+ assert result.posters.first.has_key? 'cover'
121
+ assert result.posters.first.has_key? 'thumb'
122
+ assert result.posters.first.has_key? 'mid'
123
+ assert result.posters.first.has_key? 'original'
124
+ end
125
+
126
+ test "backdrops" do
127
+ stub_get('/Movie.search/en/json/key/Transformers', 'search.json')
128
+ stub_get('/Movie.getInfo/en/json/key/1858', 'transformers.json')
129
+
130
+ result = @tmdb.search('Transformers').first
131
+
132
+ assert_equal 11, result.backdrops.size
133
+ assert_equal 3, result.backdrops.first.keys.size
134
+ assert result.backdrops.first.has_key? 'poster'
135
+ assert result.backdrops.first.has_key? 'thumb'
136
+ assert result.backdrops.first.has_key? 'original'
137
+ end
138
+
139
+ test "blank result" do
140
+ stub_get('/Movie.search/en/json/key/Closing%20the%20Ring', 'shitty_shit_result.json')
141
+
142
+ results = @tmdb.search('Closing the Ring')
143
+ assert_equal 0, results.size
144
+ end
145
+
146
+
147
+
148
+ end
metadata ADDED
@@ -0,0 +1,113 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: maksar-tmdb_party
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.2
5
+ platform: ruby
6
+ authors:
7
+ - John Duff
8
+ - Jon Maddox
9
+ - Alexander Shestakov
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+
14
+ date: 2010-01-07 00:00:00 +02:00
15
+ default_executable:
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
+ name: httparty
19
+ type: :runtime
20
+ version_requirement:
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: 0.4.3
26
+ version:
27
+ - !ruby/object:Gem::Dependency
28
+ name: fakeweb
29
+ type: :development
30
+ version_requirement:
31
+ version_requirements: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: "0"
36
+ version:
37
+ - !ruby/object:Gem::Dependency
38
+ name: context
39
+ type: :development
40
+ version_requirement:
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: "0"
46
+ version:
47
+ description:
48
+ email: Maksar.mail@gmail.com
49
+ executables: []
50
+
51
+ extensions: []
52
+
53
+ extra_rdoc_files:
54
+ - LICENSE
55
+ - README.rdoc
56
+ files:
57
+ - .document
58
+ - .gitignore
59
+ - LICENSE
60
+ - README.rdoc
61
+ - Rakefile
62
+ - VERSION.yml
63
+ - lib/tmdb_party.rb
64
+ - lib/tmdb_party/attributes.rb
65
+ - lib/tmdb_party/category.rb
66
+ - lib/tmdb_party/core_extensions.rb
67
+ - lib/tmdb_party/genre.rb
68
+ - lib/tmdb_party/httparty_icebox.rb
69
+ - lib/tmdb_party/image.rb
70
+ - lib/tmdb_party/movie.rb
71
+ - lib/tmdb_party/person.rb
72
+ - lib/tmdb_party/video.rb
73
+ - test/fixtures/imdb_no_results.json
74
+ - test/fixtures/imdb_search.json
75
+ - test/fixtures/no_groups.json
76
+ - test/fixtures/rad.json
77
+ - test/fixtures/search.json
78
+ - test/fixtures/shitty_shit_result.json
79
+ - test/fixtures/single_result.json
80
+ - test/fixtures/transformers.json
81
+ - test/test_helper.rb
82
+ - test/tmdb_party/test_tmdb_party.rb
83
+ has_rdoc: true
84
+ homepage: http://github.com/maksar/tmdb_party
85
+ licenses: []
86
+
87
+ post_install_message:
88
+ rdoc_options:
89
+ - --charset=UTF-8
90
+ require_paths:
91
+ - lib
92
+ required_ruby_version: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: "0"
97
+ version:
98
+ required_rubygems_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: "0"
103
+ version:
104
+ requirements: []
105
+
106
+ rubyforge_project:
107
+ rubygems_version: 1.3.5
108
+ signing_key:
109
+ specification_version: 3
110
+ summary: Simple ruby wrapper to themoviedb.org (http://api.themoviedb.org/2.0/docs/) using HTTParty
111
+ test_files:
112
+ - test/test_helper.rb
113
+ - test/tmdb_party/test_tmdb_party.rb