yt 0.21.0 → 0.22.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.
- checksums.yaml +4 -4
- data/.yardopts +1 -0
- data/CHANGELOG.md +13 -0
- data/README.md +8 -461
- data/lib/yt/actions/base.rb +1 -0
- data/lib/yt/associations/has_attribute.rb +2 -0
- data/lib/yt/associations/has_authentication.rb +2 -0
- data/lib/yt/associations/has_many.rb +1 -0
- data/lib/yt/associations/has_one.rb +1 -0
- data/lib/yt/associations/has_reports.rb +24 -18
- data/lib/yt/collections/authentications.rb +1 -0
- data/lib/yt/collections/content_details.rb +1 -0
- data/lib/yt/collections/content_owner_details.rb +1 -0
- data/lib/yt/collections/file_details.rb +1 -0
- data/lib/yt/collections/ids.rb +1 -0
- data/lib/yt/collections/live_streaming_details.rb +1 -0
- data/lib/yt/collections/players.rb +1 -0
- data/lib/yt/collections/ratings.rb +1 -0
- data/lib/yt/collections/reports.rb +25 -16
- data/lib/yt/collections/resources.rb +1 -0
- data/lib/yt/collections/resumable_sessions.rb +1 -0
- data/lib/yt/collections/snippets.rb +1 -0
- data/lib/yt/collections/statistics_sets.rb +1 -0
- data/lib/yt/collections/statuses.rb +1 -0
- data/lib/yt/collections/subscriptions.rb +1 -0
- data/lib/yt/collections/user_infos.rb +1 -0
- data/lib/yt/models/account.rb +28 -26
- data/lib/yt/models/base.rb +1 -0
- data/lib/yt/models/channel.rb +38 -38
- data/lib/yt/models/content_detail.rb +1 -0
- data/lib/yt/models/content_owner_detail.rb +1 -0
- data/lib/yt/models/device_flow.rb +1 -0
- data/lib/yt/models/file_detail.rb +1 -0
- data/lib/yt/models/iterator.rb +1 -0
- data/lib/yt/models/live_streaming_detail.rb +1 -0
- data/lib/yt/models/player.rb +1 -0
- data/lib/yt/models/playlist.rb +19 -19
- data/lib/yt/models/playlist_item.rb +12 -12
- data/lib/yt/models/rating.rb +1 -0
- data/lib/yt/models/resource.rb +8 -2
- data/lib/yt/models/resumable_session.rb +1 -0
- data/lib/yt/models/snippet.rb +1 -0
- data/lib/yt/models/statistics_set.rb +1 -0
- data/lib/yt/models/status.rb +1 -6
- data/lib/yt/models/subscription.rb +1 -0
- data/lib/yt/models/timestamp.rb +1 -0
- data/lib/yt/models/url.rb +1 -0
- data/lib/yt/models/user_info.rb +1 -0
- data/lib/yt/models/video.rb +70 -70
- data/lib/yt/models/video_category.rb +1 -0
- data/lib/yt/request.rb +1 -0
- data/lib/yt/version.rb +1 -1
- data/spec/collections/reports_spec.rb +1 -1
- data/spec/requests/as_content_owner/channel_spec.rb +210 -14
- data/spec/requests/as_content_owner/playlist_spec.rb +68 -8
- data/spec/requests/as_content_owner/video_spec.rb +213 -16
- data/spec/requests/as_server_app/channel_spec.rb +27 -7
- data/spec/requests/as_server_app/playlist_spec.rb +25 -4
- data/spec/requests/as_server_app/video_spec.rb +26 -5
- metadata +1 -3
- data/spec/requests/as_server_app/resource_spec.rb +0 -46
@@ -55,10 +55,36 @@ describe Yt::Channel, :partner do
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
|
+
describe 'earnings can be grouped by range' do
|
59
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
60
|
+
let(:keys) { range.values }
|
61
|
+
|
62
|
+
specify 'with the :by option set to :range' do
|
63
|
+
earnings = channel.earnings range.merge by: :range
|
64
|
+
expect(earnings.size).to be 1
|
65
|
+
expect(earnings[:total]).to be_a Float
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe 'earnings can be grouped by day' do
|
70
|
+
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
71
|
+
let(:keys) { range.values }
|
72
|
+
|
73
|
+
specify 'without a :by option (default)' do
|
74
|
+
earnings = channel.earnings range
|
75
|
+
expect(earnings.keys).to eq range.values
|
76
|
+
end
|
77
|
+
|
78
|
+
specify 'with the :by option set to :day' do
|
79
|
+
earnings = channel.earnings range.merge by: :day
|
80
|
+
expect(earnings.keys).to eq range.values
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
58
84
|
describe 'views can be retrieved for a specific day' do
|
59
85
|
context 'in which the channel was partnered' do
|
60
86
|
let(:views) { channel.views_on 5.days.ago}
|
61
|
-
it { expect(views).to
|
87
|
+
it { expect(views).to be_an Integer }
|
62
88
|
end
|
63
89
|
|
64
90
|
context 'in which the channel was not partnered' do
|
@@ -87,6 +113,16 @@ describe Yt::Channel, :partner do
|
|
87
113
|
end
|
88
114
|
end
|
89
115
|
|
116
|
+
describe 'views can be grouped by range' do
|
117
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
118
|
+
|
119
|
+
specify 'with the :by option set to :range' do
|
120
|
+
views = channel.views range.merge by: :range
|
121
|
+
expect(views.size).to be 1
|
122
|
+
expect(views[:total]).to be_an Integer
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
90
126
|
describe 'views can be grouped by day' do
|
91
127
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
92
128
|
let(:keys) { range.values }
|
@@ -164,14 +200,14 @@ describe Yt::Channel, :partner do
|
|
164
200
|
specify 'with the :by option set to :device_type' do
|
165
201
|
views = channel.views range.merge by: :device_type
|
166
202
|
expect(views.keys).to all(be_instance_of Symbol)
|
167
|
-
expect(views.values).to all(
|
203
|
+
expect(views.values).to all(be_an Integer)
|
168
204
|
end
|
169
205
|
end
|
170
206
|
|
171
207
|
describe 'comments can be retrieved for a specific day' do
|
172
208
|
context 'in which the channel was partnered' do
|
173
209
|
let(:comments) { channel.comments_on 5.days.ago}
|
174
|
-
it { expect(comments).to
|
210
|
+
it { expect(comments).to be_an Integer }
|
175
211
|
end
|
176
212
|
|
177
213
|
context 'in which the channel was not partnered' do
|
@@ -200,6 +236,16 @@ describe Yt::Channel, :partner do
|
|
200
236
|
end
|
201
237
|
end
|
202
238
|
|
239
|
+
describe 'comments can be grouped by range' do
|
240
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
241
|
+
|
242
|
+
specify 'with the :by option set to :range' do
|
243
|
+
comments = channel.comments range.merge by: :range
|
244
|
+
expect(comments.size).to be 1
|
245
|
+
expect(comments[:total]).to be_an Integer
|
246
|
+
end
|
247
|
+
end
|
248
|
+
|
203
249
|
describe 'comments can be grouped by day' do
|
204
250
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
205
251
|
let(:keys) { range.values }
|
@@ -218,7 +264,7 @@ describe Yt::Channel, :partner do
|
|
218
264
|
describe 'likes can be retrieved for a specific day' do
|
219
265
|
context 'in which the channel was partnered' do
|
220
266
|
let(:likes) { channel.likes_on 5.days.ago}
|
221
|
-
it { expect(likes).to
|
267
|
+
it { expect(likes).to be_an Integer }
|
222
268
|
end
|
223
269
|
|
224
270
|
context 'in which the channel was not partnered' do
|
@@ -247,6 +293,16 @@ describe Yt::Channel, :partner do
|
|
247
293
|
end
|
248
294
|
end
|
249
295
|
|
296
|
+
describe 'likes can be grouped by range' do
|
297
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
298
|
+
|
299
|
+
specify 'with the :by option set to :range' do
|
300
|
+
likes = channel.likes range.merge by: :range
|
301
|
+
expect(likes.size).to be 1
|
302
|
+
expect(likes[:total]).to be_an Integer
|
303
|
+
end
|
304
|
+
end
|
305
|
+
|
250
306
|
describe 'likes can be grouped by day' do
|
251
307
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
252
308
|
let(:keys) { range.values }
|
@@ -265,7 +321,7 @@ describe Yt::Channel, :partner do
|
|
265
321
|
describe 'dislikes can be retrieved for a specific day' do
|
266
322
|
context 'in which the channel was partnered' do
|
267
323
|
let(:dislikes) { channel.dislikes_on 5.days.ago}
|
268
|
-
it { expect(dislikes).to
|
324
|
+
it { expect(dislikes).to be_an Integer }
|
269
325
|
end
|
270
326
|
|
271
327
|
context 'in which the channel was not partnered' do
|
@@ -294,6 +350,16 @@ describe Yt::Channel, :partner do
|
|
294
350
|
end
|
295
351
|
end
|
296
352
|
|
353
|
+
describe 'dislikes can be grouped by range' do
|
354
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
355
|
+
|
356
|
+
specify 'with the :by option set to :range' do
|
357
|
+
dislikes = channel.dislikes range.merge by: :range
|
358
|
+
expect(dislikes.size).to be 1
|
359
|
+
expect(dislikes[:total]).to be_an Integer
|
360
|
+
end
|
361
|
+
end
|
362
|
+
|
297
363
|
describe 'dislikes can be grouped by day' do
|
298
364
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
299
365
|
let(:keys) { range.values }
|
@@ -312,7 +378,7 @@ describe Yt::Channel, :partner do
|
|
312
378
|
describe 'shares can be retrieved for a specific day' do
|
313
379
|
context 'in which the channel was partnered' do
|
314
380
|
let(:shares) { channel.shares_on ENV['YT_TEST_PARTNER_VIDEO_DATE']}
|
315
|
-
it { expect(shares).to
|
381
|
+
it { expect(shares).to be_an Integer }
|
316
382
|
end
|
317
383
|
|
318
384
|
context 'in which the channel was not partnered' do
|
@@ -341,6 +407,16 @@ describe Yt::Channel, :partner do
|
|
341
407
|
end
|
342
408
|
end
|
343
409
|
|
410
|
+
describe 'shares can be grouped by range' do
|
411
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
412
|
+
|
413
|
+
specify 'with the :by option set to :range' do
|
414
|
+
shares = channel.shares range.merge by: :range
|
415
|
+
expect(shares.size).to be 1
|
416
|
+
expect(shares[:total]).to be_an Integer
|
417
|
+
end
|
418
|
+
end
|
419
|
+
|
344
420
|
describe 'shares can be grouped by day' do
|
345
421
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
346
422
|
let(:keys) { range.values }
|
@@ -359,7 +435,7 @@ describe Yt::Channel, :partner do
|
|
359
435
|
describe 'gained subscribers can be retrieved for a specific day' do
|
360
436
|
context 'in which the channel was partnered' do
|
361
437
|
let(:subscribers_gained) { channel.subscribers_gained_on 5.days.ago}
|
362
|
-
it { expect(subscribers_gained).to
|
438
|
+
it { expect(subscribers_gained).to be_an Integer }
|
363
439
|
end
|
364
440
|
|
365
441
|
context 'in which the channel was not partnered' do
|
@@ -388,6 +464,16 @@ describe Yt::Channel, :partner do
|
|
388
464
|
end
|
389
465
|
end
|
390
466
|
|
467
|
+
describe 'gained subscribers can be grouped by range' do
|
468
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
469
|
+
|
470
|
+
specify 'with the :by option set to :range' do
|
471
|
+
subscribers_gained = channel.subscribers_gained range.merge by: :range
|
472
|
+
expect(subscribers_gained.size).to be 1
|
473
|
+
expect(subscribers_gained[:total]).to be_an Integer
|
474
|
+
end
|
475
|
+
end
|
476
|
+
|
391
477
|
describe 'gained subscribers can be grouped by day' do
|
392
478
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
393
479
|
let(:keys) { range.values }
|
@@ -406,7 +492,7 @@ describe Yt::Channel, :partner do
|
|
406
492
|
describe 'lost subscribers can be retrieved for a specific day' do
|
407
493
|
context 'in which the channel was partnered' do
|
408
494
|
let(:subscribers_lost) { channel.subscribers_lost_on 5.days.ago}
|
409
|
-
it { expect(subscribers_lost).to
|
495
|
+
it { expect(subscribers_lost).to be_an Integer }
|
410
496
|
end
|
411
497
|
|
412
498
|
context 'in which the channel was not partnered' do
|
@@ -435,6 +521,16 @@ describe Yt::Channel, :partner do
|
|
435
521
|
end
|
436
522
|
end
|
437
523
|
|
524
|
+
describe 'lost subscribers can be grouped by range' do
|
525
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
526
|
+
|
527
|
+
specify 'with the :by option set to :range' do
|
528
|
+
subscribers_lost = channel.subscribers_lost range.merge by: :range
|
529
|
+
expect(subscribers_lost.size).to be 1
|
530
|
+
expect(subscribers_lost[:total]).to be_an Integer
|
531
|
+
end
|
532
|
+
end
|
533
|
+
|
438
534
|
describe 'lost subscribers can be grouped by day' do
|
439
535
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
440
536
|
let(:keys) { range.values }
|
@@ -453,7 +549,7 @@ describe Yt::Channel, :partner do
|
|
453
549
|
describe 'added favorites can be retrieved for a specific day' do
|
454
550
|
context 'in which the channel was partnered' do
|
455
551
|
let(:favorites_added) { channel.favorites_added_on 5.days.ago}
|
456
|
-
it { expect(favorites_added).to
|
552
|
+
it { expect(favorites_added).to be_an Integer }
|
457
553
|
end
|
458
554
|
|
459
555
|
context 'in which the channel was not partnered' do
|
@@ -482,6 +578,16 @@ describe Yt::Channel, :partner do
|
|
482
578
|
end
|
483
579
|
end
|
484
580
|
|
581
|
+
describe 'added favorites can be grouped by range' do
|
582
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
583
|
+
|
584
|
+
specify 'with the :by option set to :range' do
|
585
|
+
favorites_added = channel.favorites_added range.merge by: :range
|
586
|
+
expect(favorites_added.size).to be 1
|
587
|
+
expect(favorites_added[:total]).to be_an Integer
|
588
|
+
end
|
589
|
+
end
|
590
|
+
|
485
591
|
describe 'added favorites can be grouped by day' do
|
486
592
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
487
593
|
let(:keys) { range.values }
|
@@ -500,7 +606,7 @@ describe Yt::Channel, :partner do
|
|
500
606
|
describe 'removed favorites can be retrieved for a specific day' do
|
501
607
|
context 'in which the channel was partnered' do
|
502
608
|
let(:favorites_removed) { channel.favorites_removed_on 5.days.ago}
|
503
|
-
it { expect(favorites_removed).to
|
609
|
+
it { expect(favorites_removed).to be_an Integer }
|
504
610
|
end
|
505
611
|
|
506
612
|
context 'in which the channel was not partnered' do
|
@@ -529,6 +635,16 @@ describe Yt::Channel, :partner do
|
|
529
635
|
end
|
530
636
|
end
|
531
637
|
|
638
|
+
describe 'removed favorites can be grouped by range' do
|
639
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
640
|
+
|
641
|
+
specify 'with the :by option set to :range' do
|
642
|
+
favorites_removed = channel.favorites_removed range.merge by: :range
|
643
|
+
expect(favorites_removed.size).to be 1
|
644
|
+
expect(favorites_removed[:total]).to be_an Integer
|
645
|
+
end
|
646
|
+
end
|
647
|
+
|
532
648
|
describe 'removed favorites can be grouped by day' do
|
533
649
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
534
650
|
let(:keys) { range.values }
|
@@ -576,6 +692,16 @@ describe Yt::Channel, :partner do
|
|
576
692
|
end
|
577
693
|
end
|
578
694
|
|
695
|
+
describe 'estimated minutes watched can be grouped by range' do
|
696
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
697
|
+
|
698
|
+
specify 'with the :by option set to :range' do
|
699
|
+
minutes = channel.estimated_minutes_watched range.merge by: :range
|
700
|
+
expect(minutes.size).to be 1
|
701
|
+
expect(minutes[:total]).to be_a Float
|
702
|
+
end
|
703
|
+
end
|
704
|
+
|
579
705
|
describe 'estimated minutes watched can be grouped by day' do
|
580
706
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
581
707
|
let(:keys) { range.values }
|
@@ -689,6 +815,16 @@ describe Yt::Channel, :partner do
|
|
689
815
|
end
|
690
816
|
end
|
691
817
|
|
818
|
+
describe 'average view duration can be grouped by range' do
|
819
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
820
|
+
|
821
|
+
specify 'with the :by option set to :range' do
|
822
|
+
duration = channel.average_view_duration range.merge by: :range
|
823
|
+
expect(duration.size).to be 1
|
824
|
+
expect(duration[:total]).to be_a Float
|
825
|
+
end
|
826
|
+
end
|
827
|
+
|
692
828
|
describe 'average view duration can be grouped by day' do
|
693
829
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
694
830
|
let(:keys) { range.values }
|
@@ -736,6 +872,16 @@ describe Yt::Channel, :partner do
|
|
736
872
|
end
|
737
873
|
end
|
738
874
|
|
875
|
+
describe 'average view percentage can be grouped by range' do
|
876
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
877
|
+
|
878
|
+
specify 'with the :by option set to :range' do
|
879
|
+
percentage = channel.average_view_percentage range.merge by: :range
|
880
|
+
expect(percentage.size).to be 1
|
881
|
+
expect(percentage[:total]).to be_a Float
|
882
|
+
end
|
883
|
+
end
|
884
|
+
|
739
885
|
describe 'average view percentage can be grouped by day' do
|
740
886
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
741
887
|
let(:keys) { range.values }
|
@@ -754,7 +900,7 @@ describe Yt::Channel, :partner do
|
|
754
900
|
describe 'impressions can be retrieved for a specific day' do
|
755
901
|
context 'in which the channel was partnered' do
|
756
902
|
let(:impressions) { channel.impressions_on 20.days.ago}
|
757
|
-
it { expect(impressions).to
|
903
|
+
it { expect(impressions).to be_an Integer }
|
758
904
|
end
|
759
905
|
|
760
906
|
context 'in which the channel was not partnered' do
|
@@ -783,6 +929,16 @@ describe Yt::Channel, :partner do
|
|
783
929
|
end
|
784
930
|
end
|
785
931
|
|
932
|
+
describe 'impressions can be grouped by range' do
|
933
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
934
|
+
|
935
|
+
specify 'with the :by option set to :range' do
|
936
|
+
impressions = channel.impressions range.merge by: :range
|
937
|
+
expect(impressions.size).to be 1
|
938
|
+
expect(impressions[:total]).to be_an Integer
|
939
|
+
end
|
940
|
+
end
|
941
|
+
|
786
942
|
describe 'impressions can be grouped by day' do
|
787
943
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
788
944
|
let(:keys) { range.values }
|
@@ -801,7 +957,7 @@ describe Yt::Channel, :partner do
|
|
801
957
|
describe 'monetized playbacks can be retrieved for a specific day' do
|
802
958
|
context 'in which the channel was partnered' do
|
803
959
|
let(:monetized_playbacks) { channel.monetized_playbacks_on 20.days.ago}
|
804
|
-
it { expect(monetized_playbacks).to
|
960
|
+
it { expect(monetized_playbacks).to be_an Integer }
|
805
961
|
end
|
806
962
|
|
807
963
|
context 'in which the channel was not partnered' do
|
@@ -830,6 +986,16 @@ describe Yt::Channel, :partner do
|
|
830
986
|
end
|
831
987
|
end
|
832
988
|
|
989
|
+
describe 'monetized playbacks can be grouped by range' do
|
990
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
991
|
+
|
992
|
+
specify 'with the :by option set to :range' do
|
993
|
+
monetized_playbacks = channel.monetized_playbacks range.merge by: :range
|
994
|
+
expect(monetized_playbacks.size).to be 1
|
995
|
+
expect(monetized_playbacks[:total]).to be_an Integer
|
996
|
+
end
|
997
|
+
end
|
998
|
+
|
833
999
|
describe 'monetized_playbacks can be grouped by day' do
|
834
1000
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
835
1001
|
let(:keys) { range.values }
|
@@ -858,17 +1024,27 @@ describe Yt::Channel, :partner do
|
|
858
1024
|
end
|
859
1025
|
end
|
860
1026
|
|
1027
|
+
describe 'annotation clicks can be grouped by range' do
|
1028
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
1029
|
+
|
1030
|
+
specify 'with the :by option set to :range' do
|
1031
|
+
annotation_clicks = channel.annotation_clicks range.merge by: :range
|
1032
|
+
expect(annotation_clicks.size).to be 1
|
1033
|
+
expect(annotation_clicks[:total]).to be_an Integer
|
1034
|
+
end
|
1035
|
+
end
|
1036
|
+
|
861
1037
|
describe 'annotation clicks can be grouped by day' do
|
862
1038
|
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE'], until: Date.parse(ENV['YT_TEST_PARTNER_VIDEO_DATE']) + 5} }
|
863
1039
|
|
864
1040
|
specify 'without a :by option (default)' do
|
865
1041
|
annotation_clicks = channel.annotation_clicks range
|
866
|
-
expect(annotation_clicks.values).to all(
|
1042
|
+
expect(annotation_clicks.values).to all(be_an Integer)
|
867
1043
|
end
|
868
1044
|
|
869
1045
|
specify 'with the :by option set to :day' do
|
870
1046
|
annotation_clicks = channel.annotation_clicks range.merge by: :day
|
871
|
-
expect(annotation_clicks.values).to all(
|
1047
|
+
expect(annotation_clicks.values).to all(be_an Integer)
|
872
1048
|
end
|
873
1049
|
end
|
874
1050
|
|
@@ -885,6 +1061,16 @@ describe Yt::Channel, :partner do
|
|
885
1061
|
end
|
886
1062
|
end
|
887
1063
|
|
1064
|
+
describe 'annotation click-through rate can be grouped by range' do
|
1065
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
1066
|
+
|
1067
|
+
specify 'with the :by option set to :range' do
|
1068
|
+
rate = channel.annotation_click_through_rate range.merge by: :range
|
1069
|
+
expect(rate.size).to be 1
|
1070
|
+
expect(rate[:total]).to be_a Float
|
1071
|
+
end
|
1072
|
+
end
|
1073
|
+
|
888
1074
|
describe 'annotation click-through rate can be grouped by day' do
|
889
1075
|
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE'], until: Date.parse(ENV['YT_TEST_PARTNER_VIDEO_DATE']) + 5} }
|
890
1076
|
|
@@ -912,6 +1098,16 @@ describe Yt::Channel, :partner do
|
|
912
1098
|
end
|
913
1099
|
end
|
914
1100
|
|
1101
|
+
describe 'annotation close rate can be grouped by range' do
|
1102
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
1103
|
+
|
1104
|
+
specify 'with the :by option set to :range' do
|
1105
|
+
rate = channel.annotation_close_rate range.merge by: :range
|
1106
|
+
expect(rate.size).to be 1
|
1107
|
+
expect(rate[:total]).to be_a Float
|
1108
|
+
end
|
1109
|
+
end
|
1110
|
+
|
915
1111
|
describe 'annotation close rate can be grouped by day' do
|
916
1112
|
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE'], until: Date.parse(ENV['YT_TEST_PARTNER_VIDEO_DATE']) + 5} }
|
917
1113
|
|
@@ -13,7 +13,7 @@ describe Yt::Playlist, :partner do
|
|
13
13
|
describe 'views can be retrieved for a specific day' do
|
14
14
|
context 'in which the playlist was viewed' do
|
15
15
|
let(:views) { playlist.views_on ENV['YT_TEST_PARTNER_PLAYLIST_DATE']}
|
16
|
-
it { expect(views).to
|
16
|
+
it { expect(views).to be_an Integer }
|
17
17
|
end
|
18
18
|
|
19
19
|
context 'in which the playlist was not viewed' do
|
@@ -42,6 +42,16 @@ describe Yt::Playlist, :partner do
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
+
describe 'views can be grouped by range' do
|
46
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
47
|
+
|
48
|
+
specify 'with the :by option set to :range' do
|
49
|
+
views = playlist.views range.merge by: :range
|
50
|
+
expect(views.size).to be 1
|
51
|
+
expect(views[:total]).to be_an Integer
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
45
55
|
describe 'views can be grouped by day' do
|
46
56
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
47
57
|
let(:keys) { range.values }
|
@@ -110,19 +120,19 @@ describe Yt::Playlist, :partner do
|
|
110
120
|
specify 'with the :by option set to :device_type' do
|
111
121
|
views = playlist.views range.merge by: :device_type
|
112
122
|
expect(views.keys).to all(be_instance_of Symbol)
|
113
|
-
expect(views.values).to all(
|
123
|
+
expect(views.values).to all(be_an Integer)
|
114
124
|
end
|
115
125
|
end
|
116
126
|
|
117
127
|
describe 'estimated minutes watched can be retrieved for a specific day' do
|
118
128
|
context 'in which the playlist was viewed' do
|
119
|
-
let(:
|
120
|
-
it { expect(
|
129
|
+
let(:minutes) { playlist.estimated_minutes_watched_on ENV['YT_TEST_PARTNER_PLAYLIST_DATE']}
|
130
|
+
it { expect(minutes).to be_a Float }
|
121
131
|
end
|
122
132
|
|
123
133
|
context 'in which the playlist was not viewed' do
|
124
|
-
let(:
|
125
|
-
it { expect(
|
134
|
+
let(:minutes) { playlist.estimated_minutes_watched_on 20.years.ago}
|
135
|
+
it { expect(minutes).to be_nil }
|
126
136
|
end
|
127
137
|
end
|
128
138
|
|
@@ -146,6 +156,16 @@ describe Yt::Playlist, :partner do
|
|
146
156
|
end
|
147
157
|
end
|
148
158
|
|
159
|
+
describe 'estimated minutes watched can be grouped by range' do
|
160
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
161
|
+
|
162
|
+
specify 'with the :by option set to :range' do
|
163
|
+
minutes = playlist.estimated_minutes_watched range.merge by: :range
|
164
|
+
expect(minutes.size).to be 1
|
165
|
+
expect(minutes[:total]).to be_a Float
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
149
169
|
describe 'estimated minutes watched can be grouped by day' do
|
150
170
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
151
171
|
let(:keys) { range.values }
|
@@ -271,7 +291,7 @@ describe Yt::Playlist, :partner do
|
|
271
291
|
|
272
292
|
describe 'average view duration can be retrieved for a specific day' do
|
273
293
|
context 'in which the playlist was partnered' do
|
274
|
-
let(:average_view_duration) { playlist.average_view_duration_on
|
294
|
+
let(:average_view_duration) { playlist.average_view_duration_on ENV['YT_TEST_PARTNER_PLAYLIST_DATE']}
|
275
295
|
it { expect(average_view_duration).to be_a Float }
|
276
296
|
end
|
277
297
|
|
@@ -301,6 +321,16 @@ describe Yt::Playlist, :partner do
|
|
301
321
|
end
|
302
322
|
end
|
303
323
|
|
324
|
+
describe 'average view duration can be grouped by range' do
|
325
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
326
|
+
|
327
|
+
specify 'with the :by option set to :range' do
|
328
|
+
duration = playlist.average_view_duration range.merge by: :range
|
329
|
+
expect(duration.size).to be 1
|
330
|
+
expect(duration[:total]).to be_a Float
|
331
|
+
end
|
332
|
+
end
|
333
|
+
|
304
334
|
describe 'average view duration can be grouped by day' do
|
305
335
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
306
336
|
let(:keys) { range.values }
|
@@ -319,7 +349,7 @@ describe Yt::Playlist, :partner do
|
|
319
349
|
describe 'playlist starts can be retrieved for a specific day' do
|
320
350
|
context 'in which the playlist was viewed' do
|
321
351
|
let(:playlist_starts) { playlist.playlist_starts_on ENV['YT_TEST_PARTNER_PLAYLIST_DATE']}
|
322
|
-
it { expect(playlist_starts).to
|
352
|
+
it { expect(playlist_starts).to be_an Integer }
|
323
353
|
end
|
324
354
|
|
325
355
|
context 'in which the playlist was not viewed' do
|
@@ -348,6 +378,16 @@ describe Yt::Playlist, :partner do
|
|
348
378
|
end
|
349
379
|
end
|
350
380
|
|
381
|
+
describe 'playlist starts can be grouped by range' do
|
382
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
383
|
+
|
384
|
+
specify 'with the :by option set to :range' do
|
385
|
+
playlist_starts = playlist.playlist_starts range.merge by: :range
|
386
|
+
expect(playlist_starts.size).to be 1
|
387
|
+
expect(playlist_starts[:total]).to be_an Integer
|
388
|
+
end
|
389
|
+
end
|
390
|
+
|
351
391
|
describe 'playlist starts can be grouped by day' do
|
352
392
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
353
393
|
let(:keys) { range.values }
|
@@ -395,6 +435,16 @@ describe Yt::Playlist, :partner do
|
|
395
435
|
end
|
396
436
|
end
|
397
437
|
|
438
|
+
describe 'average time in playlist can be grouped by range' do
|
439
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
440
|
+
|
441
|
+
specify 'with the :by option set to :range' do
|
442
|
+
times = playlist.average_time_in_playlist range.merge by: :range
|
443
|
+
expect(times.size).to be 1
|
444
|
+
expect(times[:total]).to be_a Float
|
445
|
+
end
|
446
|
+
end
|
447
|
+
|
398
448
|
describe 'average time in playlist can be grouped by day' do
|
399
449
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
400
450
|
let(:keys) { range.values }
|
@@ -442,6 +492,16 @@ describe Yt::Playlist, :partner do
|
|
442
492
|
end
|
443
493
|
end
|
444
494
|
|
495
|
+
describe 'views per playlist start can be grouped by range' do
|
496
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
497
|
+
|
498
|
+
specify 'with the :by option set to :range' do
|
499
|
+
views = playlist.views_per_playlist_start range.merge by: :range
|
500
|
+
expect(views.size).to be 1
|
501
|
+
expect(views[:total]).to be_a Float
|
502
|
+
end
|
503
|
+
end
|
504
|
+
|
445
505
|
describe 'views per playlist start can be grouped by day' do
|
446
506
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
447
507
|
let(:keys) { range.values }
|