flickrmocks 0.8.5

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.
Files changed (68) hide show
  1. data/.autotest +36 -0
  2. data/.document +5 -0
  3. data/.gitignore +23 -0
  4. data/.rspec +3 -0
  5. data/MIT-LICENSE +20 -0
  6. data/README.rdoc +59 -0
  7. data/Rakefile +76 -0
  8. data/VERSION +1 -0
  9. data/autotest/discover.rb +1 -0
  10. data/flickrmocks.gemspec +155 -0
  11. data/lib/flickr_mocks/api/api.rb +42 -0
  12. data/lib/flickr_mocks/api/flickr.rb +27 -0
  13. data/lib/flickr_mocks/api/helpers.rb +19 -0
  14. data/lib/flickr_mocks/api/options.rb +55 -0
  15. data/lib/flickr_mocks/api/sanitize.rb +29 -0
  16. data/lib/flickr_mocks/fixtures.rb +35 -0
  17. data/lib/flickr_mocks/flickraw/custom_clone.rb +19 -0
  18. data/lib/flickr_mocks/flickraw/custom_compare.rb +25 -0
  19. data/lib/flickr_mocks/flickraw/custom_marshal.rb +39 -0
  20. data/lib/flickr_mocks/flickraw/flickraw.rb +14 -0
  21. data/lib/flickr_mocks/helpers.rb +52 -0
  22. data/lib/flickr_mocks/models/helpers.rb +14 -0
  23. data/lib/flickr_mocks/models/photo.rb +101 -0
  24. data/lib/flickr_mocks/models/photo_details.rb +86 -0
  25. data/lib/flickr_mocks/models/photo_dimensions.rb +103 -0
  26. data/lib/flickr_mocks/models/photo_search.rb +115 -0
  27. data/lib/flickr_mocks/models/photo_size.rb +60 -0
  28. data/lib/flickr_mocks/models/photo_sizes.rb +93 -0
  29. data/lib/flickr_mocks/models/photos.rb +133 -0
  30. data/lib/flickr_mocks/stubs.rb +103 -0
  31. data/lib/flickr_mocks/version.rb +4 -0
  32. data/lib/flickrmocks.rb +27 -0
  33. data/spec/api/api_spec.rb +84 -0
  34. data/spec/api/flickr_spec.rb +48 -0
  35. data/spec/api/helper_spec.rb +37 -0
  36. data/spec/api/options_spec.rb +152 -0
  37. data/spec/api/sanitize_spec.rb +90 -0
  38. data/spec/base/fixtures_spec.rb +89 -0
  39. data/spec/base/flickraw/custom_clone_spec.rb +70 -0
  40. data/spec/base/flickraw/custom_compare_spec.rb +98 -0
  41. data/spec/base/flickraw/custom_marshal_spec.rb +45 -0
  42. data/spec/base/helpers_spec.rb +63 -0
  43. data/spec/base/stubs_spec.rb +180 -0
  44. data/spec/base/version_spec.rb +15 -0
  45. data/spec/fixtures/author_photos.marshal +0 -0
  46. data/spec/fixtures/empty_photos.marshal +0 -0
  47. data/spec/fixtures/expected_methods.marshal +17 -0
  48. data/spec/fixtures/interesting_photos.marshal +0 -0
  49. data/spec/fixtures/photo.marshal +0 -0
  50. data/spec/fixtures/photo_details.marshal +0 -0
  51. data/spec/fixtures/photo_size.marshal +0 -0
  52. data/spec/fixtures/photo_sizes.marshal +0 -0
  53. data/spec/fixtures/photos.marshal +0 -0
  54. data/spec/models/helpers_spec.rb +25 -0
  55. data/spec/models/photo_details_spec.rb +224 -0
  56. data/spec/models/photo_dimensions_spec.rb +208 -0
  57. data/spec/models/photo_search_spec.rb +255 -0
  58. data/spec/models/photo_size_spec.rb +122 -0
  59. data/spec/models/photo_sizes_spec.rb +168 -0
  60. data/spec/models/photo_spec.rb +278 -0
  61. data/spec/models/photos_spec.rb +305 -0
  62. data/spec/shared_examples/array_accessor.rb +157 -0
  63. data/spec/shared_examples/collection.rb +49 -0
  64. data/spec/shared_examples/image_url_helpers.rb +56 -0
  65. data/spec/shared_examples/size_accessor.rb +13 -0
  66. data/spec/spec_helper.rb +24 -0
  67. data/tasks/fixtures.rb +164 -0
  68. metadata +259 -0
data/tasks/fixtures.rb ADDED
@@ -0,0 +1,164 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../lib/flickrmocks')
2
+ require 'fileutils'
3
+
4
+
5
+ # used for providing fixtures to users of the gem
6
+ namespace :fixtures do
7
+ desc 'generate all fixtures for USERS of the GEM'
8
+ task :all => [:photos,:empty_photos,:interesting_photos,:author_photos,:photo,:photo_details,
9
+ :photo_sizes,:photo_size,:expected_methods]
10
+
11
+ desc 'generate fixture for flickr.photos.search'
12
+ task :photos => :repository do
13
+ config_flickr
14
+ dump default_photos,:photos
15
+ end
16
+
17
+ desc 'generated fixture for empty flickr.photos.search'
18
+ task :empty_photos => :repository do
19
+ config_flickr
20
+ dump default_empty_photos, :empty_photos
21
+ end
22
+
23
+
24
+ desc 'generate fixture for flickr.interestingness.getList'
25
+ task :interesting_photos => :repository do
26
+ config_flickr
27
+ dump default_interesting_photos,:interesting_photos
28
+ end
29
+
30
+ desc 'generate fixture for flickr.photos.search :author'
31
+ task :author_photos => :repository do
32
+ config_flickr
33
+ dump default_author_photos,:author_photos
34
+ end
35
+
36
+ desc 'generating photo'
37
+ task :photo => :repository do
38
+ config_flickr
39
+ dump default_photo,:photo
40
+ end
41
+
42
+ desc 'generated fixture for flickr.photos.getInfo'
43
+ task :photo_details => :repository do
44
+ config_flickr
45
+ dump default_photo_details,:photo_details
46
+ end
47
+
48
+ desc 'generate fixture for flickr.photos.getSizes'
49
+ task :photo_sizes => :repository do
50
+ config_flickr
51
+ dump default_photo_sizes,:photo_sizes
52
+ end
53
+
54
+ desc 'generated fixture for single size'
55
+ task :photo_size => :repository do
56
+ config_flickr
57
+ dump default_photo_sizes[0],:photo_size
58
+ end
59
+
60
+
61
+ desc 'expected methods'
62
+ task :expected_methods => :repository do
63
+ data = OpenStruct.new
64
+ config_flickr
65
+ data.photos = default_methods(default_photos)
66
+ data.empty_photos = default_methods(default_empty_photos)
67
+ data.interesting_photos = default_methods(default_interesting_photos)
68
+ data.author_photos = default_methods(default_author_photos)
69
+ data.photo = default_methods(default_photo)
70
+ data.photo_details = default_methods(default_photo_details)
71
+ data.photo_sizes = default_methods(default_photo_sizes)
72
+ data.photo_size = default_methods(default_photo_size)
73
+ dump data,:expected_methods
74
+ end
75
+
76
+ desc 'create directory for string Fixtures for Users of gem'
77
+ task :repository do
78
+ repo = repo_dir
79
+ unless File.exists? repo
80
+ puts "generating directory #{repo}"
81
+ FileUtils.mkdir_p repo
82
+ end
83
+ end
84
+
85
+ desc 'removing all fixture files used by Users of the gem'
86
+ task :clean do
87
+ files = Dir.glob "#{repo_dir}*.marshal"
88
+ if files.empty?
89
+ puts 'nothing to remove'
90
+ else
91
+ puts "removing files #{files}"
92
+ FileUtils.rm files
93
+ end
94
+ end
95
+
96
+
97
+
98
+ # helper methods for configuration
99
+
100
+ def config_flickr
101
+ FlickRaw.api_key = YAML.load_file("#{config_dir}/config.yml")['flickr_api_key']
102
+ end
103
+
104
+ def config_dir
105
+ File.expand_path(File.dirname(__FILE__) + '/../')
106
+ end
107
+
108
+ def repo_dir
109
+ FlickrMocks::Fixtures.repository
110
+ end
111
+
112
+ def dump(data,fname)
113
+ puts "generating file #{fname}"
114
+ file = repo_dir + fname.to_s + '.marshal'
115
+ FlickrMocks::Helpers.dump data,file
116
+ end
117
+
118
+ def default_photos
119
+ @default_photos ||= flickr.photos.search :tags => 'france', :per_page => '50', :extras=>'license'
120
+ @default_photos
121
+ end
122
+
123
+ def default_interesting_photos
124
+ @default_intesting_photos ||= flickr.interestingness.getList :date => '2009-01-15', :per_page => '50', :extras=>'license'
125
+ @default_intesting_photos
126
+ end
127
+
128
+ def default_author_photos
129
+ @default_author_photos ||= flickr.photos.search :user_id => default_photo.owner, :per_page => '20', :extras=>'license'
130
+ @default_author_photos
131
+ end
132
+
133
+ def default_photo
134
+ @default_photo ||= default_photos[0]
135
+ @default_photo
136
+ end
137
+
138
+ def default_photo_details
139
+ @default_photo_details ||= flickr.photos.getInfo :photo_id => default_photo.id, :extras=>'license'
140
+ @default_photo_details
141
+ end
142
+
143
+ def default_photo_sizes
144
+ @default_photo_sizes ||=flickr.photos.getSizes :photo_id => default_photo.id, :extras=> 'license'
145
+ @default_photo_sizes
146
+ end
147
+
148
+ def default_photo_size
149
+ @default_photo_size ||= default_photo_sizes[0]
150
+ @default_photo_size
151
+ end
152
+
153
+ def default_empty_photos
154
+ @default_empty_photos ||= flickr.photos.search :tags => 'xyzgoogohowdy'
155
+ @default_empty_photos
156
+ end
157
+
158
+ def default_methods(obj)
159
+ obj.methods(false).push(:flickr_type)
160
+ end
161
+
162
+
163
+
164
+ end
metadata ADDED
@@ -0,0 +1,259 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: flickrmocks
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 8
8
+ - 5
9
+ version: 0.8.5
10
+ platform: ruby
11
+ authors:
12
+ - Takaltoo
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-11-08 00:00:00 -08:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: thoughtbot-shoulda
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 2
30
+ - 10
31
+ version: "2.10"
32
+ type: :development
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: rspec
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ segments:
43
+ - 2
44
+ - 0
45
+ - 0
46
+ - beta
47
+ - 22
48
+ version: 2.0.0.beta.22
49
+ type: :development
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: capybara
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ segments:
60
+ - 0
61
+ version: "0"
62
+ type: :development
63
+ version_requirements: *id003
64
+ - !ruby/object:Gem::Dependency
65
+ name: factory_girl_rails
66
+ prerelease: false
67
+ requirement: &id004 !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ segments:
73
+ - 1
74
+ - 0
75
+ version: "1.0"
76
+ type: :development
77
+ version_requirements: *id004
78
+ - !ruby/object:Gem::Dependency
79
+ name: faker
80
+ prerelease: false
81
+ requirement: &id005 !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ segments:
87
+ - 0
88
+ - 3
89
+ - 1
90
+ version: 0.3.1
91
+ type: :development
92
+ version_requirements: *id005
93
+ - !ruby/object:Gem::Dependency
94
+ name: flickraw
95
+ prerelease: false
96
+ requirement: &id006 !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ segments:
102
+ - 0
103
+ - 8
104
+ - 2
105
+ version: 0.8.2
106
+ type: :runtime
107
+ version_requirements: *id006
108
+ - !ruby/object:Gem::Dependency
109
+ name: chronic
110
+ prerelease: false
111
+ requirement: &id007 !ruby/object:Gem::Requirement
112
+ none: false
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ segments:
117
+ - 0
118
+ version: "0"
119
+ type: :runtime
120
+ version_requirements: *id007
121
+ description: |-
122
+ FlickrMocks makes it possible to Marshal responses
123
+ generated from the FLickRaw gem. This is useful for
124
+ Mocking/Stubbing the Flickr interface for testing purposes.
125
+ The FlickRaw::Response and FlickRaw::ResponseList objects can
126
+ not be Marshaled because they contain singleton's.
127
+ email: pouya@lavabit.com
128
+ executables: []
129
+
130
+ extensions: []
131
+
132
+ extra_rdoc_files:
133
+ - README.rdoc
134
+ files:
135
+ - .autotest
136
+ - .document
137
+ - .gitignore
138
+ - .rspec
139
+ - MIT-LICENSE
140
+ - README.rdoc
141
+ - Rakefile
142
+ - VERSION
143
+ - autotest/discover.rb
144
+ - flickrmocks.gemspec
145
+ - lib/flickr_mocks/api/api.rb
146
+ - lib/flickr_mocks/api/flickr.rb
147
+ - lib/flickr_mocks/api/helpers.rb
148
+ - lib/flickr_mocks/api/options.rb
149
+ - lib/flickr_mocks/api/sanitize.rb
150
+ - lib/flickr_mocks/fixtures.rb
151
+ - lib/flickr_mocks/flickraw/custom_clone.rb
152
+ - lib/flickr_mocks/flickraw/custom_compare.rb
153
+ - lib/flickr_mocks/flickraw/custom_marshal.rb
154
+ - lib/flickr_mocks/flickraw/flickraw.rb
155
+ - lib/flickr_mocks/helpers.rb
156
+ - lib/flickr_mocks/models/helpers.rb
157
+ - lib/flickr_mocks/models/photo.rb
158
+ - lib/flickr_mocks/models/photo_details.rb
159
+ - lib/flickr_mocks/models/photo_dimensions.rb
160
+ - lib/flickr_mocks/models/photo_search.rb
161
+ - lib/flickr_mocks/models/photo_size.rb
162
+ - lib/flickr_mocks/models/photo_sizes.rb
163
+ - lib/flickr_mocks/models/photos.rb
164
+ - lib/flickr_mocks/stubs.rb
165
+ - lib/flickr_mocks/version.rb
166
+ - lib/flickrmocks.rb
167
+ - spec/api/api_spec.rb
168
+ - spec/api/flickr_spec.rb
169
+ - spec/api/helper_spec.rb
170
+ - spec/api/options_spec.rb
171
+ - spec/api/sanitize_spec.rb
172
+ - spec/base/fixtures_spec.rb
173
+ - spec/base/flickraw/custom_clone_spec.rb
174
+ - spec/base/flickraw/custom_compare_spec.rb
175
+ - spec/base/flickraw/custom_marshal_spec.rb
176
+ - spec/base/helpers_spec.rb
177
+ - spec/base/stubs_spec.rb
178
+ - spec/base/version_spec.rb
179
+ - spec/fixtures/author_photos.marshal
180
+ - spec/fixtures/empty_photos.marshal
181
+ - spec/fixtures/expected_methods.marshal
182
+ - spec/fixtures/interesting_photos.marshal
183
+ - spec/fixtures/photo.marshal
184
+ - spec/fixtures/photo_details.marshal
185
+ - spec/fixtures/photo_size.marshal
186
+ - spec/fixtures/photo_sizes.marshal
187
+ - spec/fixtures/photos.marshal
188
+ - spec/models/helpers_spec.rb
189
+ - spec/models/photo_details_spec.rb
190
+ - spec/models/photo_dimensions_spec.rb
191
+ - spec/models/photo_search_spec.rb
192
+ - spec/models/photo_size_spec.rb
193
+ - spec/models/photo_sizes_spec.rb
194
+ - spec/models/photo_spec.rb
195
+ - spec/models/photos_spec.rb
196
+ - spec/shared_examples/array_accessor.rb
197
+ - spec/shared_examples/collection.rb
198
+ - spec/shared_examples/image_url_helpers.rb
199
+ - spec/shared_examples/size_accessor.rb
200
+ - spec/spec_helper.rb
201
+ - tasks/fixtures.rb
202
+ has_rdoc: true
203
+ homepage: http://github.com/takaltoo/flickrmocks
204
+ licenses: []
205
+
206
+ post_install_message:
207
+ rdoc_options:
208
+ - --charset=UTF-8
209
+ require_paths:
210
+ - lib
211
+ required_ruby_version: !ruby/object:Gem::Requirement
212
+ none: false
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ segments:
217
+ - 0
218
+ version: "0"
219
+ required_rubygems_version: !ruby/object:Gem::Requirement
220
+ none: false
221
+ requirements:
222
+ - - ">="
223
+ - !ruby/object:Gem::Version
224
+ segments:
225
+ - 0
226
+ version: "0"
227
+ requirements: []
228
+
229
+ rubyforge_project:
230
+ rubygems_version: 1.3.7
231
+ signing_key:
232
+ specification_version: 3
233
+ summary: Enables FlickRaw responses to be Marshaled.
234
+ test_files:
235
+ - spec/shared_examples/array_accessor.rb
236
+ - spec/shared_examples/size_accessor.rb
237
+ - spec/shared_examples/collection.rb
238
+ - spec/shared_examples/image_url_helpers.rb
239
+ - spec/models/helpers_spec.rb
240
+ - spec/models/photo_details_spec.rb
241
+ - spec/models/photo_size_spec.rb
242
+ - spec/models/photo_sizes_spec.rb
243
+ - spec/models/photos_spec.rb
244
+ - spec/models/photo_dimensions_spec.rb
245
+ - spec/models/photo_spec.rb
246
+ - spec/models/photo_search_spec.rb
247
+ - spec/api/api_spec.rb
248
+ - spec/api/flickr_spec.rb
249
+ - spec/api/options_spec.rb
250
+ - spec/api/sanitize_spec.rb
251
+ - spec/api/helper_spec.rb
252
+ - spec/base/stubs_spec.rb
253
+ - spec/base/helpers_spec.rb
254
+ - spec/base/version_spec.rb
255
+ - spec/base/flickraw/custom_clone_spec.rb
256
+ - spec/base/flickraw/custom_compare_spec.rb
257
+ - spec/base/flickraw/custom_marshal_spec.rb
258
+ - spec/base/fixtures_spec.rb
259
+ - spec/spec_helper.rb