multistockphoto 0.8.1 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,34 +0,0 @@
1
- desc 'Release the website and new gem version'
2
- task :deploy => [:check_version, :website, :release] do
3
- puts "Remember to create SVN tag:"
4
- puts "svn copy svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/trunk " +
5
- "svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/tags/REL-#{VERS} "
6
- puts "Suggested comment:"
7
- puts "Tagging release #{CHANGES}"
8
- end
9
-
10
- desc 'Runs tasks website_generate and install_gem as a local deployment of the gem'
11
- task :local_deploy => [:website_generate, :install_gem]
12
-
13
- task :check_version do
14
- unless ENV['VERSION']
15
- puts 'Must pass a VERSION=x.y.z release version'
16
- exit
17
- end
18
- unless ENV['VERSION'] == VERS
19
- puts "Please update your version.rb to match the release version, currently #{VERS}"
20
- exit
21
- end
22
- end
23
-
24
- desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
25
- task :install_gem_no_doc => [:clean, :package] do
26
- sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
27
- end
28
-
29
- namespace :manifest do
30
- desc 'Recreate Manifest.txt to include ALL files'
31
- task :refresh do
32
- `rake check_manifest | patch -p0 > Manifest.txt`
33
- end
34
- end
@@ -1,7 +0,0 @@
1
- task :ruby_env do
2
- RUBY_APP = if RUBY_PLATFORM =~ /java/
3
- "jruby"
4
- else
5
- "ruby"
6
- end unless defined? RUBY_APP
7
- end
data/tasks/website.rake DELETED
@@ -1,17 +0,0 @@
1
- desc 'Generate website files'
2
- task :website_generate => :ruby_env do
3
- (Dir['website/**/*.txt'] - Dir['website/version*.txt']).each do |txt|
4
- sh %{ #{RUBY_APP} script/txt2html #{txt} > #{txt.gsub(/txt$/,'html')} }
5
- end
6
- end
7
-
8
- desc 'Upload website files to rubyforge'
9
- task :website_upload do
10
- host = "#{rubyforge_username}@rubyforge.org"
11
- remote_dir = "/var/www/gforge-projects/#{PATH}/"
12
- local_dir = 'website'
13
- sh %{rsync -aCv #{local_dir}/ #{host}:#{remote_dir}}
14
- end
15
-
16
- desc 'Generate and upload website files'
17
- task :website => [:website_generate, :website_upload, :publish_docs]
data/test/test_helper.rb DELETED
@@ -1,6 +0,0 @@
1
- require 'test/unit'
2
- require File.dirname(__FILE__) + '/../lib/multistockphoto'
3
-
4
- def after(d)
5
- yield if DateTime.now > d
6
- end
@@ -1,855 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper.rb'
2
-
3
- require 'grep'
4
- include Grep
5
- #require 'RMagick'
6
- #include Magick
7
- require 'multistockphoto'
8
-
9
- class TestMultistockphoto < Test::Unit::TestCase
10
-
11
- REAL_TRANSFER = false
12
- BIN = 'bin/' # Test
13
- SENDLIST = 'sendeliste.dat'
14
- # BIN = '' # real
15
- ALLSITES = [:fotolia, :zoonar, :photocase, :bigstockphoto]
16
-
17
- def setup
18
- ENV['ZOONAR_USER'] = 'hugo'
19
- ENV['ZOONAR_PASSWORD'] = 'geheim'
20
- ENV['ZOONAR_USER'] = 'hugo'
21
- ENV['ZOONAR_PASSWORD'] = 'lalala'
22
- ENV['FOTOLIA_USER'] = 'hugo'
23
- ENV['FOTOLIA_PASSWORD'] = 'lalala'
24
- ENV['FOTOLIA_FTP_USER'] = '200507099'
25
- ENV['FOTOLIA_FTP_PASSWORD'] = 'hugolalala'
26
- ENV['PHOTOCASE_USER'] = 'hugo'
27
- ENV['PHOTOCASE_PASSWORD'] = 'lalala'
28
- ENV['DREAMSTIME_USER'] = 'martha'
29
- ENV['DREAMSTIME_PASSWORD'] = 'mageheim'
30
- ENV['DREAMSTIME_FTP_USER'] = 'martha12345'
31
- ENV['DREAMSTIME_FTP_PASSWORD'] = 'ftpgeheimmartha'
32
- ENV['BIGSTOCKPHOTO_USER'] = 'dennis'
33
- ENV['BIGSTOCKPHOTO_PASSWORD'] = 'dennisgeheim'
34
- ENV['BIGSTOCKPHOTO_FTP_USER'] = 'dennis12345'
35
- ENV['BIGSTOCKPHOTO_FTP_PASSWORD'] = 'ftpgeheimdennis'
36
- ENV['PANTHERMEDIA_USER'] = 'iris'
37
- ENV['PANTHERMEDIA_PASSWORD'] = 'irisgeheim'
38
- ENV['PANTHERMEDIA_FTP_USER'] = 'irisftp'
39
- ENV['PANTHERMEDIA_FTP_PASSWORD'] = 'irisftpgeheim'
40
- @fotolia_user = ENV['FOTOLIA_USER']
41
- @fotolia_password = ENV['FOTOLIA_PASSWORD']
42
- @fotolia_ftp_user = ENV['FOTOLIA_FTP_USER']
43
- @fotolia_ftp_password = ENV['FOTOLIA_FTP_PASSWORD']
44
- @zoonar_user = ENV['ZOONAR_USER']
45
- @zoonar_password = ENV['ZOONAR_PASSWORD']
46
- @aldi_user = ENV['ALDI_USER']
47
- @aldi_password = ENV['ALDI_PASSWORD']
48
- @photocase_user = ENV['PHOTOCASE_USER']
49
- @photocase_password = ENV['PHOTOCASE_PASSWORD']
50
- @dreamstime_user = ENV['DREAMSTIME_USER']
51
- @dreamstime_password = ENV['DREAMSTIME_PASSWORD']
52
- @dreamstime_ftp_user = ENV['DREAMSTIME_FTP_USER']
53
- @dreamstime_ftp_password = ENV['DREAMSTIME_FTP_PASSWORD']
54
- @bigstockphoto_user = ENV['BIGSTOCKPHOTO_USER']
55
- @bigstockphoto_password = ENV['BIGSTOCKPHOTO_PASSWORD']
56
- @bigstockphoto_ftp_user = ENV['BIGSTOCKPHOTO_FTP_USER']
57
- @bigstockphoto_ftp_password = ENV['BIGSTOCKPHOTO_FTP_PASSWORD']
58
- @panthermedia_user = ENV['PANTHERMEDIA_USER']
59
- @panthermedia_password = ENV['PANTHERMEDIA_PASSWORD']
60
- @panthermedia_ftp_user = ENV['PANTHERMEDIA_FTP_USER']
61
- @panthermedia_ftp_password = ENV['PANTHERMEDIA_FTP_PASSWORD']
62
- ENV['MSP_CONFIG'] = nil
63
- end
64
-
65
- def test_bin_check_orientation
66
- #expected = "test/IMG_3602.JPG:\tTopLeftOrientation\n"
67
- expected = "test/IMG_3602.JPG:\tlandscape\n"
68
-
69
- result = `#{BIN}multistockphoto --check-orientation test/IMG_3602.JPG`
70
- assert_equal expected, result
71
-
72
- result = `#{BIN}multistockphoto -c test/IMG_3602.JPG`
73
- assert_equal expected, result
74
-
75
- result = `#{BIN}multistockphoto -c test/IMG_5880.JPG`
76
- assert_equal "test/IMG_5880.JPG:\tportrait\n", result
77
- end
78
-
79
- def test_bin_help
80
- expected = "Usage: multistockphoto [-va1yntscrxlpoqbdef]
81
- Options:
82
- --help Show this message
83
- -v, --version Show version
84
- -a, --send-all Send all files
85
- -1, --tags-only Send only photos with keywords
86
- -y, --verbose Verbose output
87
- -n, --not-sent Count not sent files per site
88
- -t, --total-transfers Dont't send more than N photos in total
89
- -s, --total-per-site Send no more than N photos per site
90
- -c, --check-orientation Displays the orientiation of photo files
91
- -r, --rotate file [file2 ...] Rotate a photo file 90 degrees to the left
92
- -x, --stats Displays statistics
93
- -l, --list-done List photos sent to all sites
94
- -p, --purge-done Purge photos sent to all sites
95
- -o, --ordered Send/List files in alphabetical order
96
- -q, --no-tags List photos without tags file
97
- -b, --count Count - only photo with at least N tags
98
- -d, --plist Show detailed sending state for each picture
99
- -e, --check-translation Checks if translation can be done for all tags
100
- -f, --shuffle Shuffle order of files (sending)
101
- --dont-send
102
- --dont-log \n"
103
- result = `#{BIN}multistockphoto -h`
104
- assert_equal expected, result
105
- result = `#{BIN}multistockphoto --help`
106
- assert_equal expected, result
107
- end
108
-
109
- def test_bin_version
110
- # expected = "multistockphoto 0.9.0\n" + Multistockphoto::VERSION::STRING
111
- expected = "multistockphoto #{Multistockphoto::VERSION::STRING}\n"
112
- result = `#{BIN}multistockphoto -v`
113
- assert_equal expected, result
114
- result = `#{BIN}multistockphoto --version`
115
- assert_equal expected, result
116
- end
117
-
118
- def test_fotolia
119
- fotolia = Fotolia.new("Fotolia")
120
- fotolia.ftp_user = @fotolia_ftp_user
121
- fotolia.ftp_password = @fotolia_ftp_password
122
-
123
- assert_kind_of Fotolia, fotolia
124
- assert_equal "Fotolia", fotolia.name
125
-
126
- fotolia.user = @fotolia_user
127
- fotolia.password = @fotolia_password
128
-
129
- assert_equal @fotolia_user, fotolia.user
130
- assert_equal @fotolia_password, fotolia.password
131
-
132
- end
133
-
134
- def test_photo
135
- photo = Photo.new("123.jpg")
136
- assert_kind_of Photo, photo
137
- assert_equal "123.jpg", photo.filename
138
- end
139
-
140
- def test_fotolia_transfer_1
141
- if REAL_TRANSFER
142
- fotolia = Fotolia.new("Fotolia")
143
- fotolia.user = @fotolia_user
144
- fotolia.password = @fotolia_password
145
- photo = Photo.new("test/1234.jpg")
146
- #assert fotolia.transfer(photo)
147
- #TODO: zwei Gruende, warum das fehlschlagen kann:
148
- # 1. Datei nicht vorhanden
149
- # 2. Argument kein Photo-Objekt
150
- # => bessere Tests
151
- # assert_raise (RuntimeError) {
152
- # fotolia.transfer("123.jpg")
153
- # }
154
- end
155
- end
156
-
157
- # def test_fotolia_transfer_existing_picture
158
- # fotolia = Fotolia.new("Fotolia")
159
- # fotolia.user = @fotolia_user
160
- # fotolia.password = @fotolia_password
161
- # photo = Photo.new("/media/LACIE/private/CF-Card/DCIM/119CANON/IMG_3267_zugeschnitten_blank_names.jpg")
162
- # assert fotolia.transfer(photo)
163
- # end
164
-
165
- def test_fotolia_transfer_existing_no_duplicate_picture
166
- if REAL_TRANSFER
167
- fotolia = Fotolia.new("Fotolia")
168
- fotolia.user = @fotolia_user
169
- fotolia.password = @fotolia_password
170
- fotolia.ftp_user = @fotolia_ftp_user
171
- fotolia.ftp_password = @fotolia_ftp_password
172
- photo = Photo.new("/media/LACIE/private/CF-Card/DCIM/119CANON/IMG_3267_zugeschnitten_blank_names.jpg")
173
- assert_equal :duplicate, fotolia.transfer(photo)
174
- end
175
- end
176
-
177
- def test_config_params_fotolia
178
- fotolia = Fotolia.new("Fotolia Site")
179
- assert fotolia.user
180
- assert fotolia.password
181
- assert fotolia.ftp_user
182
- assert fotolia.ftp_password
183
- assert_equal @fotolia_user, fotolia.user
184
- assert_equal @fotolia_password, fotolia.password
185
- assert_equal @fotolia_ftp_user, fotolia.ftp_user
186
- assert_equal @fotolia_ftp_password, fotolia.ftp_password
187
- end
188
-
189
- def test_config_params_zoonar
190
- zoonar = Zoonar.new("zoonar Site")
191
- assert zoonar.user
192
- assert zoonar.password
193
- assert_equal @zoonar_user, zoonar.user
194
- assert_equal @zoonar_password, zoonar.password
195
- #kein ftp assert_equal @zoonar_ftp_user, zoonar.ftp_user
196
- #kein ftp assert_equal @zoonar_ftp_password, zoonar.ftp_password
197
- end
198
-
199
- def test_config_params_photocase
200
- photocase = Photocase.new("photocase Site")
201
- assert photocase.user
202
- assert photocase.password
203
- assert_equal @photocase_user, photocase.user
204
- assert_equal @photocase_password, photocase.password
205
- #kein ftp assert_equal @photocase_ftp_user, photocase.ftp_user
206
- #kein ftp assert_equal @photocase_ftp_password, photocase.ftp_password
207
- end
208
-
209
- def test_config_params_dreamstime
210
- dreamstime = Dreamstime.new("Dreamstime Site")
211
- assert dreamstime.user
212
- assert dreamstime.password
213
- assert dreamstime.ftp_user
214
- assert dreamstime.ftp_password
215
- assert_equal @dreamstime_user, dreamstime.user
216
- assert_equal @dreamstime_password, dreamstime.password
217
- assert_equal @dreamstime_ftp_user, dreamstime.ftp_user
218
- assert_equal @dreamstime_ftp_password, dreamstime.ftp_password
219
- end
220
-
221
- def test_config_params_bigstockphoto
222
- bigstockphoto = Bigstockphoto.new("Bigstockphoto Site")
223
- assert bigstockphoto.user
224
- assert bigstockphoto.password
225
- assert bigstockphoto.ftp_user
226
- assert bigstockphoto.ftp_password
227
- assert_equal @bigstockphoto_user, bigstockphoto.user
228
- assert_equal @bigstockphoto_password, bigstockphoto.password
229
- assert_equal @bigstockphoto_ftp_user, bigstockphoto.ftp_user
230
- assert_equal @bigstockphoto_ftp_password, bigstockphoto.ftp_password
231
- end
232
-
233
- def test_config_params_panthermedia
234
- site = Panthermedia.new("Panthermedia Site")
235
- #assert site.user
236
- #assert site.password
237
- assert site.ftp_user
238
- assert site.ftp_password
239
- assert_equal @panthermedia_user, site.user
240
- assert_equal @panthermedia_password, site.password
241
- assert_equal @panthermedia_ftp_user, site.ftp_user
242
- assert_equal @panthermedia_ftp_password, site.ftp_password
243
- end
244
-
245
- def test_grep
246
- file = "test/testgrep.dat"
247
- content = "zoonar\tIMG1.jpg\n"+
248
- "fotolia\tIMG1.jpg\n"+
249
- "zoonar\tIMG2.jpg\n"+
250
- "fotolia\tIMG2.jpg\n"
251
- File.open("test/testgrep.dat","w") {|f|
252
- f.puts content
253
- }
254
- assert_equal 1, grep(file,/zoonar\tIMG1.jpg/).size
255
- assert_equal 1, grep(file,/fotolia\tIMG1.jpg/).size
256
- assert_equal 1, grep(file,/zoonar\tIMG2.jpg/).size
257
- assert_equal 1, grep(file,/fotolia\tIMG2.jpg/).size
258
- assert_equal 0, grep(file,/zoonar\tIMG3.jpg/).size
259
- assert_equal 0, grep(file,/fotolia\tIMG3.jpg/).size
260
- end
261
-
262
- def test_photocase_transfer_1
263
- after Date.new(2008,6,20) do
264
- photocase = Photocase.new("Photocase")
265
- photocase.user = @photocase_user
266
- photocase.password = @photocase_password
267
- photo = Photo.new("test/1234.jpg")
268
- photocase.transfer(photo,true,true)
269
- if REAL_TRANSFER
270
- #assert fotolia.transfer(photo)
271
- #TODO: zwei Gruende, warum das fehlschlagen kann:
272
- # 1. Datei nicht vorhanden
273
- # 2. Argument kein Photo-Objekt
274
- # => bessere Tests
275
- # assert_raise (RuntimeError) {
276
- # fotolia.transfer("123.jpg")
277
- # }
278
- end
279
- end # after
280
- end
281
-
282
- def test_config_params_pixelio
283
- after Date.new(2008,7,20)+20 do
284
- pixelio = Pixelio.new("Pixelio Site")
285
- assert pixelio.user
286
- assert pixelio.password
287
- assert_equal @pixelio_user, pixelio.user
288
- assert_equal @pixelio_password, pixelio.password
289
- #kein ftp assert_equal @pixelio_ftp_user, pixelio.ftp_user
290
- #kein ftp assert_equal @pixelio_ftp_password, pixelio.ftp_password
291
- end # after
292
- end
293
-
294
- def test_dreamstime_object
295
- # angemeldet.
296
- dreamstime = Dreamstime.new("Dreamstime Site")
297
- assert_kind_of Dreamstime, dreamstime
298
- end
299
-
300
- def test_bigstockphoto_object
301
- # http://www.bigstockphoto.com/
302
- # We accept JPG, EPS, AI, PSD, PDF and PNG file formats.
303
- # All art or images MUST be created by you alone, no exceptions.
304
- #Step ONE: Upload your model releases in Release Manager>> if needed... then FTP upload your images - no folders - separate files only. Use this FTP information to log into your BigStockPhoto FTP account:
305
-
306
- # host: bigstockphoto.com
307
- # username: your BSP username
308
- # password: your BSP password
309
-
310
- #Step TWO: After upload, go to your Uploaded Images Queue to add your keywords, assign releases, titles, descriptions, categories etc. before pushing them to final BigStockPhoto Approval Queue. Also see the new FTP Status Log if needed to check upload status of images.
311
- bigstockphoto = Bigstockphoto.new("Bigstockphoto Site")
312
- assert_kind_of Bigstockphoto, bigstockphoto
313
- end
314
-
315
- after Date.new(2008,7,25) do
316
- def test_shutterstock_object
317
- shutterstock = Shutterstock.new("Shutterstock Site")
318
- assert_kind_of Shutterstock, shutterstock
319
- end
320
- end
321
-
322
- after Date.new(2008,7,25) do
323
- def test_istockphoto_object
324
- # angemeldet, aber man muß noch vorstellungsbilder hochladen
325
- istockphoto = Istockphoto.new("Istockphoto Site")
326
- assert_kind_of Istockphoto, istockphoto
327
- end
328
- end
329
-
330
- after Date.new(2008,7,25) do
331
- def test_stockxpert_object
332
- # angemeldet, aber man muss noch vorstellungsbilder hochladen
333
- stockxpert = Stockxpert.new("Stockxpert Site")
334
- assert_kind_of Stockxpert, stockxpert
335
- end
336
- end
337
-
338
- after Date.new(2008,7,25)+10 do
339
- def test_Einszweidreirf_object
340
- einszweidreirf = Einszweidreirf.new("123rf Site")
341
- assert_kind_of Einszweidreirf, einszweidreirf
342
- end
343
- end
344
-
345
- after Date.new(2008,7,25) do
346
- def test_Panthermedia_object
347
- panthermedia = Panthermedia.new("Panthermedia Site")
348
- assert_kind_of Panthermedia, panthermedia
349
- end
350
- #Shutterstock, iStockphoto , StockXpert , Dreamstime , Bigstockphoto , 123rf und Panthermedia finden Sie auf unserer Partnerseite Fotos kaufen.de
351
- end
352
-
353
-
354
-
355
- def test_max_errors
356
- site = Fotolia.new('fotolia')
357
- assert_equal 3, site.max_errors
358
- site = Zoonar.new('zoonar')
359
- assert_equal 3, site.max_errors
360
- site = Photocase.new('photocase')
361
- assert_equal 3, site.max_errors
362
- site = Dreamstime.new('dreamstime')
363
- assert_equal 3, site.max_errors
364
- site = Panthermedia.new('pantermedia')
365
- assert_equal 3, site.max_errors
366
- end
367
-
368
- def test_set_max_errors
369
- site = Fotolia.new('fotolia')
370
- site.max_errors = 4
371
- assert_equal 4, site.max_errors
372
-
373
- site = Zoonar.new('zoonar')
374
- site.max_errors = 5
375
- assert_equal 5, site.max_errors
376
-
377
- site = Photocase.new('photocase')
378
- site.max_errors = 6
379
- assert_equal 6, site.max_errors
380
- end
381
-
382
- def test_iptc_keywords
383
- after Date.new(2008,7,21)+10 do
384
- expected = ['Berlin','gwb','Blume','Biene','Verkehr','S-Bahn']
385
- photo = Photo.new(File.join('test','IMG_3602.JPG'))
386
- photo.set_keywords
387
- assert_equal expected, photo.keywords
388
- end
389
- end
390
-
391
- def test_iptc_file_keywords
392
- after Date.new(2008,7,21)+10 do
393
- expected = 'Berlin,gwb,Blume,Biene,Verkehr,S-Bahn'
394
- photo = Photo.new(File.join('test','IMG_3602.JPG'))
395
- photo.set_keywords
396
- assert_equal expected, photo.file_keywords
397
- end
398
- end
399
-
400
- def test_iptc_title
401
- after Date.new(2008,7,21)+10 do
402
- expected = 'meine Katze'
403
- photo = Photo.new(File.join('test','IMG_3602.JPG'))
404
- photo.set_keywords
405
- assert_equal expected, photo.title
406
- end
407
- end
408
-
409
- def test_iptc_file_title
410
- after Date.new(2008,7,1)+30 do
411
- expected = 'meine Katze'
412
- photo = Photo.new(File.join('test','IMG_3602.JPG'))
413
- photo.set_keywords
414
- assert_equal expected, photo.file_title
415
- end
416
- end
417
-
418
- def test_string_to_keyword_array
419
- s = "Berlin"
420
- assert_equal ['Berlin'], Photo.to_tags(s)
421
- s = "Berlin,Graffiti"
422
- assert_equal ['Berlin','Graffiti'], Photo.to_tags(s)
423
- s = "Berlin Graffiti"
424
- assert_equal ['Berlin','Graffiti'], Photo.to_tags(s)
425
- s = "Berlin Graffiti,Test"
426
- assert_equal ['Berlin','Graffiti','Test'], Photo.to_tags(s)
427
- s = "Berlin Graffiti, Test"
428
- assert_equal ['Berlin','Graffiti','Test'], Photo.to_tags(s)
429
- s = "Berlin Graffiti, Test\n zweite, dritte"
430
- assert_equal ['Berlin','Graffiti','Test','zweite','dritte'], Photo.to_tags(s)
431
- s = "Berlin Graffiti, Test\n zweite\tdritte"
432
- assert_equal ['Berlin','Graffiti','Test','zweite','dritte'], Photo.to_tags(s)
433
- s = "Berlin Graffiti, Test\n zweite|dritte"
434
- assert_equal ['Berlin','Graffiti','Test','zweite','dritte'], Photo.to_tags(s)
435
- end
436
-
437
- def test_iptc_file_keywords_non_existing_tag_file
438
- expected = 'Berlin gwb Blume Biene'
439
- photo = Photo.new(File.join('test','IMG_9999.JPG'))
440
-
441
- photo.set_keywords
442
- assert_equal expected, photo.file_keywords
443
- end
444
-
445
- def test_total_per_day_from_config_file
446
- zoonar = Zoonar.new('zoonar')
447
- assert_equal 10, zoonar.total_per_day
448
- fotolia = Fotolia.new('fotolia')
449
- assert_equal 11, fotolia.total_per_day
450
- photocase = Photocase.new('photocase')
451
- assert_equal 12, photocase.total_per_day
452
-
453
- assert_equal 0, zoonar.sent_today
454
- assert_equal 0, fotolia.sent_today
455
- assert_equal 0, photocase.sent_today
456
- end
457
- #end
458
-
459
- #class Multistockphoto
460
- after Date.new(2008,7,30) do
461
-
462
- def config_params_pixelio(*args)
463
- raise NotImplementedError, 'Need to write config_params_pixelio'
464
- end
465
-
466
- def config_params_zoonar(*args)
467
- raise NotImplementedError, 'Need to write config_params_zoonar'
468
- end
469
-
470
- def fotolia(*args)
471
- raise NotImplementedError, 'Need to write fotolia'
472
- end
473
-
474
-
475
- def fotolia_transfer_existing_no_duplicate_picture(*args)
476
- raise NotImplementedError, 'Need to write fotolia_transfer_existing_no_duplicate_picture'
477
- end
478
-
479
- def iptc_file_keywords(*args)
480
- raise NotImplementedError, 'Need to write iptc_file_keywords'
481
- end
482
-
483
- def iptc_file_keywords_non_existing_tag_file(*args)
484
- raise NotImplementedError, 'Need to write iptc_file_keywords_non_existing_tag_file'
485
- end
486
-
487
- def iptc_keywords(*args)
488
- raise NotImplementedError, 'Need to write iptc_keywords'
489
- end
490
-
491
- def max_errors(*args)
492
- raise NotImplementedError, 'Need to write max_errors'
493
- end
494
-
495
- def multistockphoto_group(*args)
496
- raise NotImplementedError, 'Need to write multistockphoto_group'
497
- end
498
-
499
- def photo(*args)
500
- raise NotImplementedError, 'Need to write photo'
501
- end
502
-
503
- def photocase_transfer_1(*args)
504
- raise NotImplementedError, 'Need to write photocase_transfer_1'
505
- end
506
-
507
- def set_max_errors(*args)
508
- raise NotImplementedError, 'Need to write set_max_errors'
509
- end
510
-
511
- # def setup(*args)
512
- # raise NotImplementedError, 'Need to write setup'
513
- # end
514
-
515
- def test_heute_schon_gesendet
516
- after Date.new(2008,7,27) do
517
- raise NotImplementedError, 'Need to write test_heute_schon_gesendet'
518
- end
519
- end
520
-
521
- end
522
-
523
- def test_password
524
- password = rand(1_000_000).to_s
525
- site = Fotolia.new('fotolia')
526
- site.password = password
527
- assert_equal password, site.password
528
-
529
- password = rand(1_000_000).to_s
530
- site = Zoonar.new('zoonar')
531
- site.password = password
532
- assert_equal password, site.password
533
-
534
- password = rand(1_000_000).to_s
535
- site = Photocase.new('photocase')
536
- site.password = password
537
- assert_equal password, site.password
538
-
539
- password = rand(1_000_000).to_s
540
- site = Dreamstime.new('dreamstime')
541
- site.password = password
542
- assert_equal password, site.password
543
-
544
- password = rand(1_000_000).to_s
545
- site = Bigstockphoto.new('bigstockphoto')
546
- site.password = password
547
- assert_equal password, site.password
548
-
549
- password = rand(1_000_000).to_s
550
- site = Panthermedia.new('panthermedia')
551
- site.password = password
552
- assert_equal password, site.password
553
- end
554
-
555
- def test_password_equals
556
- password = rand(1_000_000).to_s
557
- site = Fotolia.new('fotolia')
558
- site.password = password
559
- assert_equal password, site.password
560
-
561
- password = rand(1_000_000).to_s
562
- site = Zoonar.new('zoonar')
563
- site.password = password
564
- assert_equal password, site.password
565
-
566
- password = rand(1_000_000).to_s
567
- site = Photocase.new('photocase')
568
- site.password = password
569
- assert_equal password, site.password
570
-
571
- password = rand(1_000_000).to_s
572
- site = Dreamstime.new('dreamstime')
573
- site.password = password
574
- assert_equal password, site.password
575
-
576
- password = rand(1_000_000).to_s
577
- site = Bigstockphoto.new('dreamstime')
578
- site.password = password
579
- assert_equal password, site.password
580
-
581
- password = rand(1_000_000).to_s
582
- site = Panthermedia.new('panthermedia')
583
- site.password = password
584
- assert_equal password, site.password
585
- end
586
-
587
- after Date.new(2008,7,25)+10do
588
- def test_photos_fuer_heute_uebrig_eh
589
- raise NotImplementedError, 'Need to write test_photos_fuer_heute_uebrig_eh'
590
- end
591
- end
592
-
593
- def test_zoonar_nur_noch_5_uploads_moeglich
594
- site = Mock_Zoonar.new('zoonar',:remaining => 5)
595
- photo = Photo.new("test/1234.jpg")
596
- assert site.transfer(photo)
597
- assert site.transfer(photo)
598
- assert site.transfer(photo)
599
- assert site.transfer(photo)
600
- assert site.transfer(photo)
601
- assert_raise(UploadException) {
602
- site.transfer(photo)
603
- }
604
- assert_raise(UploadException) {
605
- site.transfer(photo)
606
- }
607
- end
608
-
609
-
610
- def test_bin_simple
611
- after Date.new(2008,7,25)+10 do
612
- begin
613
- Dir.mkdir 'upload'
614
- rescue Errno::EEXIST
615
- #ignore
616
- end
617
- ###leere sendeliste erzeugen
618
- File.unlink SENDLIST
619
- File.open(SENDLIST, "w") {}
620
- FileUtils.cp("IMG_0000.JPG", "upload/1.gif")
621
- FileUtils.cp("IMG_0000.JPG", "upload/2.gif")
622
- FileUtils.cp("IMG_0000.JPG", "upload/3.gif")
623
- expected="sending all unsent photos
624
- fotolia:upload/1.gif ... OK
625
- zoonar:upload/1.gif ... OK
626
- photocase:upload/1.gif ... OK
627
- fotolia:upload/2.gif ... OK
628
- zoonar:upload/2.gif ... OK
629
- photocase:upload/2.gif ... OK
630
- fotolia:upload/3.gif ... OK
631
- zoonar:upload/3.gif ... OK
632
- photocase:upload/3.gif ... OK
633
- 9 photos sent.\n"
634
- result = `#{BIN}multistockphoto --send-all --dont-send --dont-log`
635
- assert_equal expected, result
636
- end
637
- end
638
-
639
- def test_bin_simple_verbose
640
- after Date.new(2008,7,26)+10 do
641
- begin
642
- Dir.mkdir 'upload'
643
- rescue Errno::EEXIST
644
- #ignore
645
- end
646
- ###leere sendeliste erzeugen
647
- File.unlink SENDLIST
648
- File.open(SENDLIST, "w") {}
649
- FileUtils.cp("IMG_0000.JPG", "upload/1.gif")
650
- FileUtils.cp("IMG_0000.JPG", "upload/2.gif")
651
- FileUtils.cp("IMG_0000.JPG", "upload/3.gif")
652
- expected="sending all unsent photos
653
- fotolia:upload/1.gif ... OK
654
- 1:23
655
- {:fotolia=>1, :photocase=>0, :zoonar=>0}
656
- zoonar:upload/1.gif ... OK
657
- 1:23
658
- {:photocase=>0, :fotolia=>1, :zoonar=>1}
659
- photocase:upload/1.gif ... OK
660
- 1:23
661
- {:photocase=>1, :fotolia=>1, :zoonar=>1}
662
- fotolia:upload/2.gif ... OK
663
- 1:23
664
- {:fotolia=>2, :zoonar=>1, :photocase=>1}
665
- zoonar:upload/2.gif ... OK
666
- 1:23
667
- {:fotolia=>2, :zoonar=>2, :photocase=>1}
668
- photocase:upload/2.gif ... OK
669
- 1:23
670
- {:fotolia=>2, :zoonar=>2, :photocase=>2}
671
- fotolia:upload/3.gif ... OK
672
- 1:23
673
- {:fotolia=>3, :zoonar=>2, :photocase=>2}
674
- zoonar:upload/3.gif ... OK
675
- 1:23
676
- {:fotolia=>3, :zoonar=>3, :photocase=>2}
677
- photocase:upload/3.gif ... OK
678
- 1:23
679
- {:fotolia=>3, :zoonar=>3, :photocase=>3}
680
- 9 photos sent.\n"
681
- result = `#{BIN}multistockphoto --send-all --verbose --dont-send --dont-log`
682
- assert_equal expected, result
683
- end
684
- end
685
-
686
-
687
- def test_bin_no_tags
688
- expected = "upload/1.gif\nupload/3.gif\n"
689
-
690
- result = `#{BIN}multistockphoto --no-tags`
691
- assert_equal expected, result
692
-
693
- result = `#{BIN}multistockphoto -q`
694
- assert_equal expected, result
695
- end
696
-
697
- def test_sender
698
- sender = Sender.new("Thomas Preymesser")
699
- assert_kind_of Sender, sender
700
- end
701
-
702
- def test_active_sites
703
- sender = Sender.new("Thomas")
704
- assert_equal [:fotolia, :zoonar, :photocase, :dreamstime, :bigstockphoto,
705
- :panthermedia],
706
- sender.active_sites
707
- end
708
-
709
- def test_upload_dir
710
- sender = Sender.new("Thomas")
711
- assert_equal 'upload', sender.upload_dir
712
- end
713
-
714
- def test_done_dir
715
- sender = Sender.new("Thomas")
716
- assert_equal 'done', sender.done_dir
717
- end
718
-
719
- def test_bin_nothing_raised_send_all
720
- assert_nothing_raised() {
721
- puts `#{BIN}multistockphoto --send-all --dont-send --dont-log`
722
- }
723
- assert_nothing_raised() {
724
- puts `#{BIN}multistockphoto --send-all --verbose --dont-send --dont-log`
725
- }
726
- end
727
-
728
- def test_list_done
729
- result = `#{BIN}multistockphoto --list-done`
730
- ret = $?
731
- #p result
732
- assert ret.exited?
733
- assert_equal 0, ret.exitstatus
734
- end
735
-
736
- def test_purge_done
737
- result = `#{BIN}multistockphoto --purge-done`
738
- ret = $?
739
- #p result
740
- assert ret.exited?
741
- assert_equal 0, ret.exitstatus
742
- end
743
-
744
- def test_not_sent
745
- result = `#{BIN}multistockphoto --not-sent`
746
- ret = $?
747
- #p result
748
- assert ret.exited?
749
- assert_equal 0, ret.exitstatus
750
- end
751
-
752
- def test_can_handle_orientation
753
- assert ! Fotolia.can_handle_orientation?
754
- assert ! Zoonar.can_handle_orientation?
755
- assert ! Photocase.can_handle_orientation?
756
- assert ! Panthermedia.can_handle_orientation?
757
- end
758
-
759
- def test_specific_file_sent_to_site
760
- after Date.new(2008,7,21)+10 do
761
- sender = Sender.new('icke')
762
- assert sender.sent_to?("upload/IMG_3333.JPG", :fotolia)
763
- assert ! sender.sent_to?("upload/IMG_9999.JPG", :fotolia)
764
- end
765
- end
766
-
767
- def test_accepted_fileformats
768
- #site = Bigstockphoto.new("bigstockphoto")
769
- #We accept JPG, EPS, AI, PSD, PDF and PNG file formats.
770
- assert Bigstockphoto.accept?("JPG")
771
- assert Bigstockphoto.accept?("JPEG")
772
- assert Bigstockphoto.accept?("EPS")
773
- assert Bigstockphoto.accept?("AI")
774
- assert Bigstockphoto.accept?("PSD")
775
- assert Bigstockphoto.accept?("PDF")
776
- assert Bigstockphoto.accept?("PNG")
777
- assert ! Bigstockphoto.accept?("lalala")
778
-
779
- assert Bigstockphoto.accept?(".JPG")
780
- assert Bigstockphoto.accept?(".JPEG")
781
- assert Bigstockphoto.accept?(".EPS")
782
- assert Bigstockphoto.accept?(".AI")
783
- assert Bigstockphoto.accept?(".PSD")
784
- assert Bigstockphoto.accept?(".PDF")
785
- assert Bigstockphoto.accept?(".PNG")
786
- assert ! Bigstockphoto.accept?(".lalala")
787
-
788
- assert Bigstockphoto.accept?("jpg")
789
- assert Bigstockphoto.accept?("Jpeg")
790
- assert Bigstockphoto.accept?("eps")
791
- assert Bigstockphoto.accept?("ai")
792
- assert Bigstockphoto.accept?("psd")
793
- assert Bigstockphoto.accept?("pdf")
794
- assert Bigstockphoto.accept?("Png")
795
- assert ! Bigstockphoto.accept?("Lalala")
796
-
797
-
798
- assert Fotolia.accept?('jpg')
799
- assert Fotolia.accept?('jpeg')
800
- assert Fotolia.accept?('svg')
801
- assert ! Fotolia.accept?('psd')
802
-
803
-
804
-
805
- end
806
-
807
- def test_translated_iptc_file_keywords
808
- after Date.new(2008,7,31) do
809
- expected = 'Berlin,gwb,flower,bee,traffic'
810
- photo = Photo.new(File.join('test','IMG_3602.JPG'))
811
- photo.set_keywords(:de,:en)
812
- assert_equal expected, photo.file_keywords
813
- end
814
- end
815
-
816
- def test_photosize_valid?
817
- photo = Photo.new(File.join('test','IMG_3602.JPG'))
818
- ALLSITES.each {|site_name|
819
- site = eval(site_name.to_s.capitalize+".new(#{site_name.to_s.capitalize})")
820
- assert site.photosize_valid?(photo)
821
- }
822
- end
823
-
824
- def test_shutterstock_object
825
- after Date.new(2008,7,25)+10 do
826
- site = Shutterstock.new('Shutterstock')
827
- assert_kind_of Shutterstock, site
828
- end
829
- end
830
- def test_istockphoto_object
831
- after Date.new(2008,7,25)+10 do
832
- site = Istockphoto.new('iStockphoto')
833
- assert_kind_of Istockphoto, site
834
- end
835
- end
836
- def test_stockxpert_object
837
- after Date.new(2008,7,25)+10 do
838
- site = Stockxpert.new('StockXpert')
839
- assert_kind_of Stockxpert, site
840
- end
841
- end
842
- def test_123rf_object
843
- after Date.new(2008,7,25)+10 do
844
- site = Einszweidreirf.new('123rf')
845
- assert_kind_of Einszweidreirf, site
846
- end
847
- end
848
-
849
- def test_panthermedia_object
850
- site = Panthermedia.new('Panthermedia')
851
- assert_kind_of Panthermedia, site
852
- end
853
-
854
- end
855
-