yt 0.22.2 → 0.23.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +26 -0
- data/README.md +1 -1
- data/lib/yt/associations/has_reports.rb +4 -4
- data/lib/yt/version.rb +1 -1
- data/spec/requests/as_content_owner/channel_spec.rb +79 -817
- data/spec/requests/as_content_owner/playlist_spec.rb +78 -473
- data/spec/requests/as_content_owner/video_spec.rb +149 -1485
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 684b3fcaa4ab0f5f3ad32ec7296601f71e549e4a
|
4
|
+
data.tar.gz: f6026fcc1c013dd12ef05c53fe1e4ff2964fb4a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c050616344cebcb10223924565f11d1c00f6d06900afb7c955e8a5ed6f999c96c3af6860402007b433769a1d5ddcdbae221ad4f93de8e35f18e2b0924d7dc62b
|
7
|
+
data.tar.gz: e3d73c055a6cd8a2ffba67fc90066b0e412e7aa2a2c968fbf349892e18ade346b1758d73bf96d33b73033cfacef87b7846bffc94bd26e9e863020ed75390d807
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,32 @@ For more information about changelogs, check
|
|
6
6
|
[Keep a Changelog](http://keepachangelog.com) and
|
7
7
|
[Vandamme](http://tech-angels.github.io/vandamme).
|
8
8
|
|
9
|
+
## 0.23.0 - 2015-05-18
|
10
|
+
|
11
|
+
**How to upgrade**
|
12
|
+
|
13
|
+
If your code expects reports to return results **by day** then you **must** add
|
14
|
+
the `by: :day` option to your report method. The new default is `by: :range`.
|
15
|
+
For instance `channel.views` would return
|
16
|
+
|
17
|
+
{Wed, 8 May 2014 => 12.4, Thu, 9 May 2014 => 3.2, Fri, 10 May 2014 => …}
|
18
|
+
|
19
|
+
and now returns the same as calling `channel.views by: :range`:
|
20
|
+
|
21
|
+
{total: 3450}
|
22
|
+
|
23
|
+
Additionally, if you expect reports **by day** then you **must** specify the
|
24
|
+
`:since` option to your report method. Previously, this value was set to
|
25
|
+
`5.days.ago`, but now is required. `:until` still defaults to `Date.today`.
|
26
|
+
|
27
|
+
Finally, if you expect reports for the entire range, notice that the default
|
28
|
+
`:since` option is now set to the date when YouTube opened. Therefore calling a
|
29
|
+
method like `channel.views` now returns the **lifetime** views of a channel.
|
30
|
+
|
31
|
+
* [ENHANCEMENT] Change default from `by: :day` to `by: :range`.
|
32
|
+
* [ENHANCEMENT] Require `:since` options for any report by day.
|
33
|
+
* [ENHANCEMENT] Change default range for reports by range to lifetime.
|
34
|
+
|
9
35
|
## 0.22.2 - 2015-05-15
|
10
36
|
|
11
37
|
* [FEATURE] New `by: :search_term` option for reports.
|
data/README.md
CHANGED
@@ -41,7 +41,7 @@ To install on your system, run
|
|
41
41
|
|
42
42
|
To use inside a bundled Ruby project, add this line to the Gemfile:
|
43
43
|
|
44
|
-
gem 'yt', '~> 0.
|
44
|
+
gem 'yt', '~> 0.23.0'
|
45
45
|
|
46
46
|
Since the gem follows [Semantic Versioning](http://semver.org),
|
47
47
|
indicating the full version in your Gemfile (~> *major*.*minor*.*patch*)
|
@@ -187,20 +187,20 @@ module Yt
|
|
187
187
|
|
188
188
|
def define_metric_on_method(metric)
|
189
189
|
define_method "#{metric}_on" do |date|
|
190
|
-
send(metric, from: date, to: date).values.first
|
190
|
+
send(metric, from: date, to: date, by: :day).values.first
|
191
191
|
end
|
192
192
|
end
|
193
193
|
|
194
194
|
def define_metric_method(metric)
|
195
195
|
define_method metric do |options = {}|
|
196
|
-
from = options[:since] || options[:from] || (
|
197
|
-
to = options[:until] || options[:to] ||
|
196
|
+
from = options[:since] || options[:from] || (options[:by] == :day ? 5.days.ago : '2005-02-01')
|
197
|
+
to = options[:until] || options[:to] || Date.today
|
198
198
|
location = options[:in]
|
199
199
|
country = location.is_a?(Hash) ? location[:country] : location
|
200
200
|
state = location[:state] if location.is_a?(Hash)
|
201
201
|
|
202
202
|
range = Range.new *[from, to].map(&:to_date)
|
203
|
-
dimension = options[:by] || (metric == :viewer_percentage ? :gender_age_group : :
|
203
|
+
dimension = options[:by] || (metric == :viewer_percentage ? :gender_age_group : :range)
|
204
204
|
|
205
205
|
ivar = instance_variable_get "@#{metric}_#{dimension}_#{country}_#{state}"
|
206
206
|
instance_variable_set "@#{metric}_#{dimension}_#{country}_#{state}", ivar || {}
|
data/lib/yt/version.rb
CHANGED
@@ -10,12 +10,83 @@ describe Yt::Channel, :partner do
|
|
10
10
|
context 'managed by the authenticated Content Owner' do
|
11
11
|
let(:id) { ENV['YT_TEST_PARTNER_CHANNEL_ID'] }
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
[:views, :uniques, :comments, :likes, :dislikes, :shares,
|
14
|
+
:subscribers_gained, :subscribers_lost, :favorites_added,
|
15
|
+
:favorites_removed, :estimated_minutes_watched, :average_view_duration,
|
16
|
+
:average_view_percentage, :impressions, :monetized_playbacks,
|
17
|
+
:annotation_clicks, :annotation_click_through_rate,
|
18
|
+
:annotation_close_rate, :earnings].each do |metric|
|
19
|
+
describe "#{metric} can be retrieved for a range of days" do
|
20
|
+
let(:date_in) { ENV['YT_TEST_PARTNER_VIDEO_DATE'] }
|
21
|
+
let(:date_out) { Date.parse(ENV['YT_TEST_PARTNER_VIDEO_DATE']) + 5 }
|
22
|
+
let(:metric) { metric }
|
23
|
+
let(:result) { channel.public_send metric, options }
|
24
|
+
|
25
|
+
context 'with a given start and end (:since/:until option)' do
|
26
|
+
let(:options) { {by: :day, since: date_in, until: date_out} }
|
27
|
+
it { expect(result.keys.min).to eq date_in.to_date }
|
28
|
+
it { expect(result.keys.max).to eq date_out.to_date }
|
29
|
+
end
|
30
|
+
|
31
|
+
context 'with a given start and end (:from/:to option)' do
|
32
|
+
let(:options) { {by: :day, from: date_in, to: date_out} }
|
33
|
+
it { expect(result.keys.min).to eq date_in.to_date }
|
34
|
+
it { expect(result.keys.max).to eq date_out.to_date }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
{views: Integer, comments: Integer, likes: Integer, dislikes: Integer,
|
40
|
+
subscribers_gained: Integer, subscribers_lost: Integer,
|
41
|
+
estimated_minutes_watched: Float, average_view_duration: Float,
|
42
|
+
annotation_clicks: Integer, annotation_click_through_rate: Float,
|
43
|
+
favorites_added: Integer, favorites_removed: Integer,
|
44
|
+
average_view_percentage: Float, impressions: Integer,
|
45
|
+
shares: Integer,
|
46
|
+
monetized_playbacks: Integer, annotation_close_rate: Float,
|
47
|
+
earnings: Float}.each do |metric, type|
|
48
|
+
describe "#{metric} can be retrieved for a specific day" do
|
49
|
+
let(:metric) { metric }
|
50
|
+
let(:result) { channel.public_send "#{metric}_on", date }
|
51
|
+
|
52
|
+
context 'in which the channel had data for the report' do
|
53
|
+
let(:date) { Date.parse(ENV['YT_TEST_PARTNER_VIDEO_DATE']) + 95 }
|
54
|
+
it { expect(result).to be_a type }
|
55
|
+
end
|
56
|
+
|
57
|
+
context 'in which the channel was not partnered' do
|
58
|
+
let(:date) { 5.days.from_now }
|
59
|
+
it { expect(result).to be_nil }
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
{views: Integer, comments: Integer, likes: Integer, dislikes: Integer,
|
65
|
+
shares: Integer, subscribers_gained: Integer, subscribers_lost: Integer,
|
66
|
+
favorites_added: Integer, favorites_removed: Integer,
|
67
|
+
estimated_minutes_watched: Float, average_view_duration: Float,
|
68
|
+
average_view_percentage: Float, impressions: Integer,
|
69
|
+
monetized_playbacks: Integer, annotation_clicks: Integer,
|
70
|
+
annotation_click_through_rate: Float, annotation_close_rate: Float,
|
71
|
+
earnings: Float}.each do |metric, type|
|
72
|
+
describe "#{metric} can be grouped by range" do
|
73
|
+
let(:metric) { metric }
|
74
|
+
|
75
|
+
context 'without a :by option (default)' do
|
76
|
+
let(:result) { channel.public_send metric }
|
77
|
+
it { expect(result.size).to be 1 }
|
78
|
+
it { expect(result[:total]).to be_a type }
|
79
|
+
end
|
80
|
+
|
81
|
+
context 'with the :by option set to :range' do
|
82
|
+
let(:result) { channel.public_send metric, by: :range }
|
83
|
+
it { expect(result.size).to be 1 }
|
84
|
+
it { expect(result[:total]).to be_a type }
|
85
|
+
end
|
17
86
|
end
|
87
|
+
end
|
18
88
|
|
89
|
+
describe 'earnings can be retrieved for a specific day' do
|
19
90
|
# NOTE: This test sounds redundant, but it’s actually a reflection of
|
20
91
|
# another irrational behavior of YouTube API. In short, if you ask for
|
21
92
|
# the "earnings" metric of a day in which a channel made 0 USD, then
|
@@ -28,11 +99,6 @@ describe Yt::Channel, :partner do
|
|
28
99
|
let(:earnings) { channel.earnings_on zero_date}
|
29
100
|
it { expect(earnings).to eq 0 }
|
30
101
|
end
|
31
|
-
|
32
|
-
context 'in the future' do
|
33
|
-
let(:earnings) { channel.earnings_on 5.days.from_now}
|
34
|
-
it { expect(earnings).to be_nil }
|
35
|
-
end
|
36
102
|
end
|
37
103
|
|
38
104
|
describe 'earnings can be retrieved for a single country' do
|
@@ -69,46 +135,10 @@ describe Yt::Channel, :partner do
|
|
69
135
|
end
|
70
136
|
end
|
71
137
|
|
72
|
-
describe 'earnings can be retrieved for a range of days' do
|
73
|
-
let(:date) { 4.days.ago }
|
74
|
-
|
75
|
-
specify 'with a given start (:since option)' do
|
76
|
-
expect(channel.earnings(since: date).keys.min).to eq date.to_date
|
77
|
-
end
|
78
|
-
|
79
|
-
specify 'with a given end (:until option)' do
|
80
|
-
expect(channel.earnings(until: date).keys.max).to eq date.to_date
|
81
|
-
end
|
82
|
-
|
83
|
-
specify 'with a given start (:from option)' do
|
84
|
-
expect(channel.earnings(from: date).keys.min).to eq date.to_date
|
85
|
-
end
|
86
|
-
|
87
|
-
specify 'with a given end (:to option)' do
|
88
|
-
expect(channel.earnings(to: date).keys.max).to eq date.to_date
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
describe 'earnings can be grouped by range' do
|
93
|
-
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
94
|
-
let(:keys) { range.values }
|
95
|
-
|
96
|
-
specify 'with the :by option set to :range' do
|
97
|
-
earnings = channel.earnings range.merge by: :range
|
98
|
-
expect(earnings.size).to be 1
|
99
|
-
expect(earnings[:total]).to be_a Float
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
138
|
describe 'earnings can be grouped by day' do
|
104
139
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
105
140
|
let(:keys) { range.values }
|
106
141
|
|
107
|
-
specify 'without a :by option (default)' do
|
108
|
-
earnings = channel.earnings range
|
109
|
-
expect(earnings.keys).to eq range.values
|
110
|
-
end
|
111
|
-
|
112
142
|
specify 'with the :by option set to :day' do
|
113
143
|
earnings = channel.earnings range.merge by: :day
|
114
144
|
expect(earnings.keys).to eq range.values
|
@@ -126,18 +156,6 @@ describe Yt::Channel, :partner do
|
|
126
156
|
end
|
127
157
|
end
|
128
158
|
|
129
|
-
describe 'views can be retrieved for a specific day' do
|
130
|
-
context 'in which the channel was partnered' do
|
131
|
-
let(:views) { channel.views_on 5.days.ago}
|
132
|
-
it { expect(views).to be_an Integer }
|
133
|
-
end
|
134
|
-
|
135
|
-
context 'in which the channel was not partnered' do
|
136
|
-
let(:views) { channel.views_on 20.years.ago}
|
137
|
-
it { expect(views).to be_nil }
|
138
|
-
end
|
139
|
-
end
|
140
|
-
|
141
159
|
describe 'views can be retrieved for a single country' do
|
142
160
|
let(:country_code) { 'US' }
|
143
161
|
let(:views) { channel.views since: date, by: by, in: location }
|
@@ -220,45 +238,10 @@ describe Yt::Channel, :partner do
|
|
220
238
|
end
|
221
239
|
end
|
222
240
|
|
223
|
-
describe 'views can be retrieved for a range of days' do
|
224
|
-
let(:date) { 4.days.ago }
|
225
|
-
|
226
|
-
specify 'with a given start (:since option)' do
|
227
|
-
expect(channel.views(since: date).keys.min).to eq date.to_date
|
228
|
-
end
|
229
|
-
|
230
|
-
specify 'with a given end (:until option)' do
|
231
|
-
expect(channel.views(until: date).keys.max).to eq date.to_date
|
232
|
-
end
|
233
|
-
|
234
|
-
specify 'with a given start (:from option)' do
|
235
|
-
expect(channel.views(from: date).keys.min).to eq date.to_date
|
236
|
-
end
|
237
|
-
|
238
|
-
specify 'with a given end (:to option)' do
|
239
|
-
expect(channel.views(to: date).keys.max).to eq date.to_date
|
240
|
-
end
|
241
|
-
end
|
242
|
-
|
243
|
-
describe 'views can be grouped by range' do
|
244
|
-
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
245
|
-
|
246
|
-
specify 'with the :by option set to :range' do
|
247
|
-
views = channel.views range.merge by: :range
|
248
|
-
expect(views.size).to be 1
|
249
|
-
expect(views[:total]).to be_an Integer
|
250
|
-
end
|
251
|
-
end
|
252
|
-
|
253
241
|
describe 'views can be grouped by day' do
|
254
242
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
255
243
|
let(:keys) { range.values }
|
256
244
|
|
257
|
-
specify 'without a :by option (default)' do
|
258
|
-
views = channel.views range
|
259
|
-
expect(views.keys).to eq range.values
|
260
|
-
end
|
261
|
-
|
262
245
|
specify 'with the :by option set to :day' do
|
263
246
|
views = channel.views range.merge by: :day
|
264
247
|
expect(views.keys).to eq range.values
|
@@ -402,53 +385,16 @@ describe Yt::Channel, :partner do
|
|
402
385
|
end
|
403
386
|
end
|
404
387
|
|
405
|
-
describe 'uniques can be retrieved for a range of days' do
|
406
|
-
let(:date) { 4.days.ago }
|
407
|
-
|
408
|
-
specify 'with a given start (:since option)' do
|
409
|
-
expect(channel.uniques(since: date).keys.min).to eq date.to_date
|
410
|
-
end
|
411
|
-
|
412
|
-
specify 'with a given end (:until option)' do
|
413
|
-
expect(channel.uniques(until: date).keys.max).to eq date.to_date
|
414
|
-
end
|
415
|
-
|
416
|
-
specify 'with a given start (:from option)' do
|
417
|
-
expect(channel.uniques(from: date).keys.min).to eq date.to_date
|
418
|
-
end
|
419
|
-
|
420
|
-
specify 'with a given end (:to option)' do
|
421
|
-
expect(channel.uniques(to: date).keys.max).to eq date.to_date
|
422
|
-
end
|
423
|
-
end
|
424
|
-
|
425
388
|
describe 'uniques can be grouped by day' do
|
426
389
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
427
390
|
let(:keys) { range.values }
|
428
391
|
|
429
|
-
specify 'without a :by option (default)' do
|
430
|
-
uniques = channel.uniques range
|
431
|
-
expect(uniques.keys).to eq range.values
|
432
|
-
end
|
433
|
-
|
434
392
|
specify 'with the :by option set to :day' do
|
435
393
|
uniques = channel.uniques range.merge by: :day
|
436
394
|
expect(uniques.keys).to eq range.values
|
437
395
|
end
|
438
396
|
end
|
439
397
|
|
440
|
-
describe 'comments can be retrieved for a specific day' do
|
441
|
-
context 'in which the channel was partnered' do
|
442
|
-
let(:comments) { channel.comments_on 5.days.ago}
|
443
|
-
it { expect(comments).to be_an Integer }
|
444
|
-
end
|
445
|
-
|
446
|
-
context 'in which the channel was not partnered' do
|
447
|
-
let(:comments) { channel.comments_on 20.years.ago}
|
448
|
-
it { expect(comments).to be_nil }
|
449
|
-
end
|
450
|
-
end
|
451
|
-
|
452
398
|
describe 'comments can be retrieved for a single country' do
|
453
399
|
let(:country_code) { 'US' }
|
454
400
|
let(:comments) { channel.comments since: date, by: by, in: location }
|
@@ -483,45 +429,10 @@ describe Yt::Channel, :partner do
|
|
483
429
|
end
|
484
430
|
end
|
485
431
|
|
486
|
-
describe 'comments can be retrieved for a range of days' do
|
487
|
-
let(:date) { 4.days.ago }
|
488
|
-
|
489
|
-
specify 'with a given start (:since option)' do
|
490
|
-
expect(channel.comments(since: date).keys.min).to eq date.to_date
|
491
|
-
end
|
492
|
-
|
493
|
-
specify 'with a given end (:until option)' do
|
494
|
-
expect(channel.comments(until: date).keys.max).to eq date.to_date
|
495
|
-
end
|
496
|
-
|
497
|
-
specify 'with a given start (:from option)' do
|
498
|
-
expect(channel.comments(from: date).keys.min).to eq date.to_date
|
499
|
-
end
|
500
|
-
|
501
|
-
specify 'with a given end (:to option)' do
|
502
|
-
expect(channel.comments(to: date).keys.max).to eq date.to_date
|
503
|
-
end
|
504
|
-
end
|
505
|
-
|
506
|
-
describe 'comments can be grouped by range' do
|
507
|
-
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
508
|
-
|
509
|
-
specify 'with the :by option set to :range' do
|
510
|
-
comments = channel.comments range.merge by: :range
|
511
|
-
expect(comments.size).to be 1
|
512
|
-
expect(comments[:total]).to be_an Integer
|
513
|
-
end
|
514
|
-
end
|
515
|
-
|
516
432
|
describe 'comments can be grouped by day' do
|
517
433
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
518
434
|
let(:keys) { range.values }
|
519
435
|
|
520
|
-
specify 'without a :by option (default)' do
|
521
|
-
comments = channel.comments range
|
522
|
-
expect(comments.keys).to eq range.values
|
523
|
-
end
|
524
|
-
|
525
436
|
specify 'with the :by option set to :day' do
|
526
437
|
comments = channel.comments range.merge by: :day
|
527
438
|
expect(comments.keys).to eq range.values
|
@@ -539,18 +450,6 @@ describe Yt::Channel, :partner do
|
|
539
450
|
end
|
540
451
|
end
|
541
452
|
|
542
|
-
describe 'likes can be retrieved for a specific day' do
|
543
|
-
context 'in which the channel was partnered' do
|
544
|
-
let(:likes) { channel.likes_on 5.days.ago}
|
545
|
-
it { expect(likes).to be_an Integer }
|
546
|
-
end
|
547
|
-
|
548
|
-
context 'in which the channel was not partnered' do
|
549
|
-
let(:likes) { channel.likes_on 20.years.ago}
|
550
|
-
it { expect(likes).to be_nil }
|
551
|
-
end
|
552
|
-
end
|
553
|
-
|
554
453
|
describe 'likes can be retrieved for a single country' do
|
555
454
|
let(:country_code) { 'US' }
|
556
455
|
let(:likes) { channel.likes since: date, by: by, in: location }
|
@@ -585,45 +484,10 @@ describe Yt::Channel, :partner do
|
|
585
484
|
end
|
586
485
|
end
|
587
486
|
|
588
|
-
describe 'likes can be retrieved for a range of days' do
|
589
|
-
let(:date) { 4.days.ago }
|
590
|
-
|
591
|
-
specify 'with a given start (:since option)' do
|
592
|
-
expect(channel.likes(since: date).keys.min).to eq date.to_date
|
593
|
-
end
|
594
|
-
|
595
|
-
specify 'with a given end (:until option)' do
|
596
|
-
expect(channel.likes(until: date).keys.max).to eq date.to_date
|
597
|
-
end
|
598
|
-
|
599
|
-
specify 'with a given start (:from option)' do
|
600
|
-
expect(channel.likes(from: date).keys.min).to eq date.to_date
|
601
|
-
end
|
602
|
-
|
603
|
-
specify 'with a given end (:to option)' do
|
604
|
-
expect(channel.likes(to: date).keys.max).to eq date.to_date
|
605
|
-
end
|
606
|
-
end
|
607
|
-
|
608
|
-
describe 'likes can be grouped by range' do
|
609
|
-
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
610
|
-
|
611
|
-
specify 'with the :by option set to :range' do
|
612
|
-
likes = channel.likes range.merge by: :range
|
613
|
-
expect(likes.size).to be 1
|
614
|
-
expect(likes[:total]).to be_an Integer
|
615
|
-
end
|
616
|
-
end
|
617
|
-
|
618
487
|
describe 'likes can be grouped by day' do
|
619
488
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
620
489
|
let(:keys) { range.values }
|
621
490
|
|
622
|
-
specify 'without a :by option (default)' do
|
623
|
-
likes = channel.likes range
|
624
|
-
expect(likes.keys).to eq range.values
|
625
|
-
end
|
626
|
-
|
627
491
|
specify 'with the :by option set to :day' do
|
628
492
|
likes = channel.likes range.merge by: :day
|
629
493
|
expect(likes.keys).to eq range.values
|
@@ -641,18 +505,6 @@ describe Yt::Channel, :partner do
|
|
641
505
|
end
|
642
506
|
end
|
643
507
|
|
644
|
-
describe 'dislikes can be retrieved for a specific day' do
|
645
|
-
context 'in which the channel was partnered' do
|
646
|
-
let(:dislikes) { channel.dislikes_on 5.days.ago}
|
647
|
-
it { expect(dislikes).to be_an Integer }
|
648
|
-
end
|
649
|
-
|
650
|
-
context 'in which the channel was not partnered' do
|
651
|
-
let(:dislikes) { channel.dislikes_on 20.years.ago}
|
652
|
-
it { expect(dislikes).to be_nil }
|
653
|
-
end
|
654
|
-
end
|
655
|
-
|
656
508
|
describe 'dislikes can be retrieved for a single country' do
|
657
509
|
let(:country_code) { 'US' }
|
658
510
|
let(:dislikes) { channel.dislikes since: date, by: by, in: location }
|
@@ -687,45 +539,10 @@ describe Yt::Channel, :partner do
|
|
687
539
|
end
|
688
540
|
end
|
689
541
|
|
690
|
-
describe 'dislikes can be retrieved for a range of days' do
|
691
|
-
let(:date) { 4.days.ago }
|
692
|
-
|
693
|
-
specify 'with a given start (:since option)' do
|
694
|
-
expect(channel.dislikes(since: date).keys.min).to eq date.to_date
|
695
|
-
end
|
696
|
-
|
697
|
-
specify 'with a given end (:until option)' do
|
698
|
-
expect(channel.dislikes(until: date).keys.max).to eq date.to_date
|
699
|
-
end
|
700
|
-
|
701
|
-
specify 'with a given start (:from option)' do
|
702
|
-
expect(channel.dislikes(from: date).keys.min).to eq date.to_date
|
703
|
-
end
|
704
|
-
|
705
|
-
specify 'with a given end (:to option)' do
|
706
|
-
expect(channel.dislikes(to: date).keys.max).to eq date.to_date
|
707
|
-
end
|
708
|
-
end
|
709
|
-
|
710
|
-
describe 'dislikes can be grouped by range' do
|
711
|
-
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
712
|
-
|
713
|
-
specify 'with the :by option set to :range' do
|
714
|
-
dislikes = channel.dislikes range.merge by: :range
|
715
|
-
expect(dislikes.size).to be 1
|
716
|
-
expect(dislikes[:total]).to be_an Integer
|
717
|
-
end
|
718
|
-
end
|
719
|
-
|
720
542
|
describe 'dislikes can be grouped by day' do
|
721
543
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
722
544
|
let(:keys) { range.values }
|
723
545
|
|
724
|
-
specify 'without a :by option (default)' do
|
725
|
-
dislikes = channel.dislikes range
|
726
|
-
expect(dislikes.keys).to eq range.values
|
727
|
-
end
|
728
|
-
|
729
546
|
specify 'with the :by option set to :day' do
|
730
547
|
dislikes = channel.dislikes range.merge by: :day
|
731
548
|
expect(dislikes.keys).to eq range.values
|
@@ -743,19 +560,6 @@ describe Yt::Channel, :partner do
|
|
743
560
|
end
|
744
561
|
end
|
745
562
|
|
746
|
-
describe 'shares can be retrieved for a specific day' do
|
747
|
-
context 'in which the channel was partnered' do
|
748
|
-
let(:date) { Date.parse(ENV['YT_TEST_PARTNER_VIDEO_DATE']) + 95 }
|
749
|
-
let(:shares) { channel.shares_on date }
|
750
|
-
it { expect(shares).to be_an Integer }
|
751
|
-
end
|
752
|
-
|
753
|
-
context 'in which the channel was not partnered' do
|
754
|
-
let(:shares) { channel.shares_on 20.years.ago}
|
755
|
-
it { expect(shares).to be_nil }
|
756
|
-
end
|
757
|
-
end
|
758
|
-
|
759
563
|
describe 'shares can be retrieved for a single country' do
|
760
564
|
let(:country_code) { 'US' }
|
761
565
|
let(:shares) { channel.shares since: date, by: by, in: location }
|
@@ -790,45 +594,10 @@ describe Yt::Channel, :partner do
|
|
790
594
|
end
|
791
595
|
end
|
792
596
|
|
793
|
-
describe 'shares can be retrieved for a range of days' do
|
794
|
-
let(:date) { 4.days.ago }
|
795
|
-
|
796
|
-
specify 'with a given start (:since option)' do
|
797
|
-
expect(channel.shares(since: date).keys.min).to eq date.to_date
|
798
|
-
end
|
799
|
-
|
800
|
-
specify 'with a given end (:until option)' do
|
801
|
-
expect(channel.shares(until: date).keys.max).to eq date.to_date
|
802
|
-
end
|
803
|
-
|
804
|
-
specify 'with a given start (:from option)' do
|
805
|
-
expect(channel.shares(from: date).keys.min).to eq date.to_date
|
806
|
-
end
|
807
|
-
|
808
|
-
specify 'with a given end (:to option)' do
|
809
|
-
expect(channel.shares(to: date).keys.max).to eq date.to_date
|
810
|
-
end
|
811
|
-
end
|
812
|
-
|
813
|
-
describe 'shares can be grouped by range' do
|
814
|
-
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
815
|
-
|
816
|
-
specify 'with the :by option set to :range' do
|
817
|
-
shares = channel.shares range.merge by: :range
|
818
|
-
expect(shares.size).to be 1
|
819
|
-
expect(shares[:total]).to be_an Integer
|
820
|
-
end
|
821
|
-
end
|
822
|
-
|
823
597
|
describe 'shares can be grouped by day' do
|
824
598
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
825
599
|
let(:keys) { range.values }
|
826
600
|
|
827
|
-
specify 'without a :by option (default)' do
|
828
|
-
shares = channel.shares range
|
829
|
-
expect(shares.keys).to eq range.values
|
830
|
-
end
|
831
|
-
|
832
601
|
specify 'with the :by option set to :day' do
|
833
602
|
shares = channel.shares range.merge by: :day
|
834
603
|
expect(shares.keys).to eq range.values
|
@@ -846,18 +615,6 @@ describe Yt::Channel, :partner do
|
|
846
615
|
end
|
847
616
|
end
|
848
617
|
|
849
|
-
describe 'gained subscribers can be retrieved for a specific day' do
|
850
|
-
context 'in which the channel was partnered' do
|
851
|
-
let(:subscribers_gained) { channel.subscribers_gained_on 5.days.ago}
|
852
|
-
it { expect(subscribers_gained).to be_an Integer }
|
853
|
-
end
|
854
|
-
|
855
|
-
context 'in which the channel was not partnered' do
|
856
|
-
let(:subscribers_gained) { channel.subscribers_gained_on 20.years.ago}
|
857
|
-
it { expect(subscribers_gained).to be_nil }
|
858
|
-
end
|
859
|
-
end
|
860
|
-
|
861
618
|
describe 'gained subscribers can be retrieved for a single country' do
|
862
619
|
let(:country_code) { 'US' }
|
863
620
|
let(:subscribers_gained) { channel.subscribers_gained since: date, by: by, in: location }
|
@@ -892,45 +649,10 @@ describe Yt::Channel, :partner do
|
|
892
649
|
end
|
893
650
|
end
|
894
651
|
|
895
|
-
describe 'gained subscribers can be retrieved for a range of days' do
|
896
|
-
let(:date) { 4.days.ago }
|
897
|
-
|
898
|
-
specify 'with a given start (:since option)' do
|
899
|
-
expect(channel.subscribers_gained(since: date).keys.min).to eq date.to_date
|
900
|
-
end
|
901
|
-
|
902
|
-
specify 'with a given end (:until option)' do
|
903
|
-
expect(channel.subscribers_gained(until: date).keys.max).to eq date.to_date
|
904
|
-
end
|
905
|
-
|
906
|
-
specify 'with a given start (:from option)' do
|
907
|
-
expect(channel.subscribers_gained(from: date).keys.min).to eq date.to_date
|
908
|
-
end
|
909
|
-
|
910
|
-
specify 'with a given end (:to option)' do
|
911
|
-
expect(channel.subscribers_gained(to: date).keys.max).to eq date.to_date
|
912
|
-
end
|
913
|
-
end
|
914
|
-
|
915
|
-
describe 'gained subscribers can be grouped by range' do
|
916
|
-
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
917
|
-
|
918
|
-
specify 'with the :by option set to :range' do
|
919
|
-
subscribers_gained = channel.subscribers_gained range.merge by: :range
|
920
|
-
expect(subscribers_gained.size).to be 1
|
921
|
-
expect(subscribers_gained[:total]).to be_an Integer
|
922
|
-
end
|
923
|
-
end
|
924
|
-
|
925
652
|
describe 'gained subscribers can be grouped by day' do
|
926
653
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
927
654
|
let(:keys) { range.values }
|
928
655
|
|
929
|
-
specify 'without a :by option (default)' do
|
930
|
-
subscribers_gained = channel.subscribers_gained range
|
931
|
-
expect(subscribers_gained.keys).to eq range.values
|
932
|
-
end
|
933
|
-
|
934
656
|
specify 'with the :by option set to :day' do
|
935
657
|
subscribers_gained = channel.subscribers_gained range.merge by: :day
|
936
658
|
expect(subscribers_gained.keys).to eq range.values
|
@@ -948,18 +670,6 @@ describe Yt::Channel, :partner do
|
|
948
670
|
end
|
949
671
|
end
|
950
672
|
|
951
|
-
describe 'lost subscribers can be retrieved for a specific day' do
|
952
|
-
context 'in which the channel was partnered' do
|
953
|
-
let(:subscribers_lost) { channel.subscribers_lost_on 5.days.ago}
|
954
|
-
it { expect(subscribers_lost).to be_an Integer }
|
955
|
-
end
|
956
|
-
|
957
|
-
context 'in which the channel was not partnered' do
|
958
|
-
let(:subscribers_lost) { channel.subscribers_lost_on 20.years.ago}
|
959
|
-
it { expect(subscribers_lost).to be_nil }
|
960
|
-
end
|
961
|
-
end
|
962
|
-
|
963
673
|
describe 'lost subscribers can be retrieved for a single country' do
|
964
674
|
let(:country_code) { 'US' }
|
965
675
|
let(:subscribers_lost) { channel.subscribers_lost since: date, by: by, in: location }
|
@@ -994,45 +704,10 @@ describe Yt::Channel, :partner do
|
|
994
704
|
end
|
995
705
|
end
|
996
706
|
|
997
|
-
describe 'lost subscribers can be retrieved for a range of days' do
|
998
|
-
let(:date) { 4.days.ago }
|
999
|
-
|
1000
|
-
specify 'with a given start (:since option)' do
|
1001
|
-
expect(channel.subscribers_lost(since: date).keys.min).to eq date.to_date
|
1002
|
-
end
|
1003
|
-
|
1004
|
-
specify 'with a given end (:until option)' do
|
1005
|
-
expect(channel.subscribers_lost(until: date).keys.max).to eq date.to_date
|
1006
|
-
end
|
1007
|
-
|
1008
|
-
specify 'with a given start (:from option)' do
|
1009
|
-
expect(channel.subscribers_lost(from: date).keys.min).to eq date.to_date
|
1010
|
-
end
|
1011
|
-
|
1012
|
-
specify 'with a given end (:to option)' do
|
1013
|
-
expect(channel.subscribers_lost(to: date).keys.max).to eq date.to_date
|
1014
|
-
end
|
1015
|
-
end
|
1016
|
-
|
1017
|
-
describe 'lost subscribers can be grouped by range' do
|
1018
|
-
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
1019
|
-
|
1020
|
-
specify 'with the :by option set to :range' do
|
1021
|
-
subscribers_lost = channel.subscribers_lost range.merge by: :range
|
1022
|
-
expect(subscribers_lost.size).to be 1
|
1023
|
-
expect(subscribers_lost[:total]).to be_an Integer
|
1024
|
-
end
|
1025
|
-
end
|
1026
|
-
|
1027
707
|
describe 'lost subscribers can be grouped by day' do
|
1028
708
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
1029
709
|
let(:keys) { range.values }
|
1030
710
|
|
1031
|
-
specify 'without a :by option (default)' do
|
1032
|
-
subscribers_lost = channel.subscribers_lost range
|
1033
|
-
expect(subscribers_lost.keys).to eq range.values
|
1034
|
-
end
|
1035
|
-
|
1036
711
|
specify 'with the :by option set to :day' do
|
1037
712
|
subscribers_lost = channel.subscribers_lost range.merge by: :day
|
1038
713
|
expect(subscribers_lost.keys).to eq range.values
|
@@ -1050,18 +725,6 @@ describe Yt::Channel, :partner do
|
|
1050
725
|
end
|
1051
726
|
end
|
1052
727
|
|
1053
|
-
describe 'added favorites can be retrieved for a specific day' do
|
1054
|
-
context 'in which the channel was partnered' do
|
1055
|
-
let(:favorites_added) { channel.favorites_added_on 5.days.ago}
|
1056
|
-
it { expect(favorites_added).to be_an Integer }
|
1057
|
-
end
|
1058
|
-
|
1059
|
-
context 'in which the channel was not partnered' do
|
1060
|
-
let(:favorites_added) { channel.favorites_added_on 20.years.ago}
|
1061
|
-
it { expect(favorites_added).to be_nil }
|
1062
|
-
end
|
1063
|
-
end
|
1064
|
-
|
1065
728
|
describe 'favorites added can be retrieved for a single country' do
|
1066
729
|
let(:country_code) { 'US' }
|
1067
730
|
let(:favorites_added) { channel.favorites_added since: date, by: by, in: location }
|
@@ -1096,45 +759,10 @@ describe Yt::Channel, :partner do
|
|
1096
759
|
end
|
1097
760
|
end
|
1098
761
|
|
1099
|
-
describe 'added favorites can be retrieved for a range of days' do
|
1100
|
-
let(:date) { 4.days.ago }
|
1101
|
-
|
1102
|
-
specify 'with a given start (:since option)' do
|
1103
|
-
expect(channel.favorites_added(since: date).keys.min).to eq date.to_date
|
1104
|
-
end
|
1105
|
-
|
1106
|
-
specify 'with a given end (:until option)' do
|
1107
|
-
expect(channel.favorites_added(until: date).keys.max).to eq date.to_date
|
1108
|
-
end
|
1109
|
-
|
1110
|
-
specify 'with a given start (:from option)' do
|
1111
|
-
expect(channel.favorites_added(from: date).keys.min).to eq date.to_date
|
1112
|
-
end
|
1113
|
-
|
1114
|
-
specify 'with a given end (:to option)' do
|
1115
|
-
expect(channel.favorites_added(to: date).keys.max).to eq date.to_date
|
1116
|
-
end
|
1117
|
-
end
|
1118
|
-
|
1119
|
-
describe 'added favorites can be grouped by range' do
|
1120
|
-
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
1121
|
-
|
1122
|
-
specify 'with the :by option set to :range' do
|
1123
|
-
favorites_added = channel.favorites_added range.merge by: :range
|
1124
|
-
expect(favorites_added.size).to be 1
|
1125
|
-
expect(favorites_added[:total]).to be_an Integer
|
1126
|
-
end
|
1127
|
-
end
|
1128
|
-
|
1129
762
|
describe 'added favorites can be grouped by day' do
|
1130
763
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
1131
764
|
let(:keys) { range.values }
|
1132
765
|
|
1133
|
-
specify 'without a :by option (default)' do
|
1134
|
-
favorites_added = channel.favorites_added range
|
1135
|
-
expect(favorites_added.keys).to eq range.values
|
1136
|
-
end
|
1137
|
-
|
1138
766
|
specify 'with the :by option set to :day' do
|
1139
767
|
favorites_added = channel.favorites_added range.merge by: :day
|
1140
768
|
expect(favorites_added.keys).to eq range.values
|
@@ -1152,22 +780,10 @@ describe Yt::Channel, :partner do
|
|
1152
780
|
end
|
1153
781
|
end
|
1154
782
|
|
1155
|
-
describe 'removed favorites can be retrieved for a specific day' do
|
1156
|
-
context 'in which the channel was partnered' do
|
1157
|
-
let(:favorites_removed) { channel.favorites_removed_on 5.days.ago}
|
1158
|
-
it { expect(favorites_removed).to be_an Integer }
|
1159
|
-
end
|
1160
|
-
|
1161
|
-
context 'in which the channel was not partnered' do
|
1162
|
-
let(:favorites_removed) { channel.favorites_removed_on 20.years.ago}
|
1163
|
-
it { expect(favorites_removed).to be_nil }
|
1164
|
-
end
|
1165
|
-
end
|
1166
|
-
|
1167
783
|
describe 'favorites removed can be retrieved for a single country' do
|
1168
784
|
let(:country_code) { 'US' }
|
1169
785
|
let(:favorites_removed) { channel.favorites_removed since: date, by: by, in: location }
|
1170
|
-
let(:date) {
|
786
|
+
let(:date) { ENV['YT_TEST_PARTNER_VIDEO_DATE'] }
|
1171
787
|
|
1172
788
|
context 'and grouped by day' do
|
1173
789
|
let(:by) { :day }
|
@@ -1198,45 +814,10 @@ describe Yt::Channel, :partner do
|
|
1198
814
|
end
|
1199
815
|
end
|
1200
816
|
|
1201
|
-
describe 'removed favorites can be retrieved for a range of days' do
|
1202
|
-
let(:date) { 4.days.ago }
|
1203
|
-
|
1204
|
-
specify 'with a given start (:since option)' do
|
1205
|
-
expect(channel.favorites_removed(since: date).keys.min).to eq date.to_date
|
1206
|
-
end
|
1207
|
-
|
1208
|
-
specify 'with a given end (:until option)' do
|
1209
|
-
expect(channel.favorites_removed(until: date).keys.max).to eq date.to_date
|
1210
|
-
end
|
1211
|
-
|
1212
|
-
specify 'with a given start (:from option)' do
|
1213
|
-
expect(channel.favorites_removed(from: date).keys.min).to eq date.to_date
|
1214
|
-
end
|
1215
|
-
|
1216
|
-
specify 'with a given end (:to option)' do
|
1217
|
-
expect(channel.favorites_removed(to: date).keys.max).to eq date.to_date
|
1218
|
-
end
|
1219
|
-
end
|
1220
|
-
|
1221
|
-
describe 'removed favorites can be grouped by range' do
|
1222
|
-
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
1223
|
-
|
1224
|
-
specify 'with the :by option set to :range' do
|
1225
|
-
favorites_removed = channel.favorites_removed range.merge by: :range
|
1226
|
-
expect(favorites_removed.size).to be 1
|
1227
|
-
expect(favorites_removed[:total]).to be_an Integer
|
1228
|
-
end
|
1229
|
-
end
|
1230
|
-
|
1231
817
|
describe 'removed favorites can be grouped by day' do
|
1232
818
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
1233
819
|
let(:keys) { range.values }
|
1234
820
|
|
1235
|
-
specify 'without a :by option (default)' do
|
1236
|
-
favorites_removed = channel.favorites_removed range
|
1237
|
-
expect(favorites_removed.keys).to eq range.values
|
1238
|
-
end
|
1239
|
-
|
1240
821
|
specify 'with the :by option set to :day' do
|
1241
822
|
favorites_removed = channel.favorites_removed range.merge by: :day
|
1242
823
|
expect(favorites_removed.keys).to eq range.values
|
@@ -1244,7 +825,7 @@ describe Yt::Channel, :partner do
|
|
1244
825
|
end
|
1245
826
|
|
1246
827
|
describe 'removed favorites can be grouped by country' do
|
1247
|
-
let(:range) { {since:
|
828
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE'], until: Date.parse(ENV['YT_TEST_PARTNER_VIDEO_DATE']) + 5} }
|
1248
829
|
|
1249
830
|
specify 'with the :by option set to :country' do
|
1250
831
|
favorites_removed = channel.favorites_removed range.merge by: :country
|
@@ -1254,18 +835,6 @@ describe Yt::Channel, :partner do
|
|
1254
835
|
end
|
1255
836
|
end
|
1256
837
|
|
1257
|
-
describe 'estimated minutes watched can be retrieved for a specific day' do
|
1258
|
-
context 'in which the channel was partnered' do
|
1259
|
-
let(:estimated_minutes_watched) { channel.estimated_minutes_watched_on 5.days.ago}
|
1260
|
-
it { expect(estimated_minutes_watched).to be_a Float }
|
1261
|
-
end
|
1262
|
-
|
1263
|
-
context 'in which the channel was not partnered' do
|
1264
|
-
let(:estimated_minutes_watched) { channel.estimated_minutes_watched_on 20.years.ago}
|
1265
|
-
it { expect(estimated_minutes_watched).to be_nil }
|
1266
|
-
end
|
1267
|
-
end
|
1268
|
-
|
1269
838
|
describe 'estimated minutes watched can be retrieved for a single country' do
|
1270
839
|
let(:country_code) { 'US' }
|
1271
840
|
let(:estimated_minutes_watched) { channel.estimated_minutes_watched since: date, by: by, in: location }
|
@@ -1334,45 +903,10 @@ describe Yt::Channel, :partner do
|
|
1334
903
|
end
|
1335
904
|
end
|
1336
905
|
|
1337
|
-
describe 'estimated minutes watched can be retrieved for a range of days' do
|
1338
|
-
let(:date) { 4.days.ago }
|
1339
|
-
|
1340
|
-
specify 'with a given start (:since option)' do
|
1341
|
-
expect(channel.estimated_minutes_watched(since: date).keys.min).to eq date.to_date
|
1342
|
-
end
|
1343
|
-
|
1344
|
-
specify 'with a given end (:until option)' do
|
1345
|
-
expect(channel.estimated_minutes_watched(until: date).keys.max).to eq date.to_date
|
1346
|
-
end
|
1347
|
-
|
1348
|
-
specify 'with a given start (:from option)' do
|
1349
|
-
expect(channel.estimated_minutes_watched(from: date).keys.min).to eq date.to_date
|
1350
|
-
end
|
1351
|
-
|
1352
|
-
specify 'with a given end (:to option)' do
|
1353
|
-
expect(channel.estimated_minutes_watched(to: date).keys.max).to eq date.to_date
|
1354
|
-
end
|
1355
|
-
end
|
1356
|
-
|
1357
|
-
describe 'estimated minutes watched can be grouped by range' do
|
1358
|
-
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
1359
|
-
|
1360
|
-
specify 'with the :by option set to :range' do
|
1361
|
-
minutes = channel.estimated_minutes_watched range.merge by: :range
|
1362
|
-
expect(minutes.size).to be 1
|
1363
|
-
expect(minutes[:total]).to be_a Float
|
1364
|
-
end
|
1365
|
-
end
|
1366
|
-
|
1367
906
|
describe 'estimated minutes watched can be grouped by day' do
|
1368
907
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
1369
908
|
let(:keys) { range.values }
|
1370
909
|
|
1371
|
-
specify 'without a :by option (default)' do
|
1372
|
-
estimated_minutes_watched = channel.estimated_minutes_watched range
|
1373
|
-
expect(estimated_minutes_watched.keys).to eq range.values
|
1374
|
-
end
|
1375
|
-
|
1376
910
|
specify 'with the :by option set to :day' do
|
1377
911
|
estimated_minutes_watched = channel.estimated_minutes_watched range.merge by: :day
|
1378
912
|
expect(estimated_minutes_watched.keys).to eq range.values
|
@@ -1476,18 +1010,6 @@ describe Yt::Channel, :partner do
|
|
1476
1010
|
end
|
1477
1011
|
end
|
1478
1012
|
|
1479
|
-
describe 'average view duration can be retrieved for a specific day' do
|
1480
|
-
context 'in which the channel was partnered' do
|
1481
|
-
let(:average_view_duration) { channel.average_view_duration_on 5.days.ago}
|
1482
|
-
it { expect(average_view_duration).to be_a Float }
|
1483
|
-
end
|
1484
|
-
|
1485
|
-
context 'in which the channel was not partnered' do
|
1486
|
-
let(:average_view_duration) { channel.average_view_duration_on 20.years.ago}
|
1487
|
-
it { expect(average_view_duration).to be_nil }
|
1488
|
-
end
|
1489
|
-
end
|
1490
|
-
|
1491
1013
|
describe 'average view duration can be retrieved for a single country' do
|
1492
1014
|
let(:country_code) { 'US' }
|
1493
1015
|
let(:average_view_duration) { channel.average_view_duration since: date, by: by, in: location }
|
@@ -1556,45 +1078,10 @@ describe Yt::Channel, :partner do
|
|
1556
1078
|
end
|
1557
1079
|
end
|
1558
1080
|
|
1559
|
-
describe 'average view duration can be retrieved for a range of days' do
|
1560
|
-
let(:date) { 4.days.ago }
|
1561
|
-
|
1562
|
-
specify 'with a given start (:since option)' do
|
1563
|
-
expect(channel.average_view_duration(since: date).keys.min).to eq date.to_date
|
1564
|
-
end
|
1565
|
-
|
1566
|
-
specify 'with a given end (:until option)' do
|
1567
|
-
expect(channel.average_view_duration(until: date).keys.max).to eq date.to_date
|
1568
|
-
end
|
1569
|
-
|
1570
|
-
specify 'with a given start (:from option)' do
|
1571
|
-
expect(channel.average_view_duration(from: date).keys.min).to eq date.to_date
|
1572
|
-
end
|
1573
|
-
|
1574
|
-
specify 'with a given end (:to option)' do
|
1575
|
-
expect(channel.average_view_duration(to: date).keys.max).to eq date.to_date
|
1576
|
-
end
|
1577
|
-
end
|
1578
|
-
|
1579
|
-
describe 'average view duration can be grouped by range' do
|
1580
|
-
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
1581
|
-
|
1582
|
-
specify 'with the :by option set to :range' do
|
1583
|
-
duration = channel.average_view_duration range.merge by: :range
|
1584
|
-
expect(duration.size).to be 1
|
1585
|
-
expect(duration[:total]).to be_a Float
|
1586
|
-
end
|
1587
|
-
end
|
1588
|
-
|
1589
1081
|
describe 'average view duration can be grouped by day' do
|
1590
1082
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
1591
1083
|
let(:keys) { range.values }
|
1592
1084
|
|
1593
|
-
specify 'without a :by option (default)' do
|
1594
|
-
average_view_duration = channel.average_view_duration range
|
1595
|
-
expect(average_view_duration.keys).to eq range.values
|
1596
|
-
end
|
1597
|
-
|
1598
1085
|
specify 'with the :by option set to :day' do
|
1599
1086
|
average_view_duration = channel.average_view_duration range.merge by: :day
|
1600
1087
|
expect(average_view_duration.keys).to eq range.values
|
@@ -1623,18 +1110,6 @@ describe Yt::Channel, :partner do
|
|
1623
1110
|
end
|
1624
1111
|
end
|
1625
1112
|
|
1626
|
-
describe 'average view percentage can be retrieved for a specific day' do
|
1627
|
-
context 'in which the channel was partnered' do
|
1628
|
-
let(:average_view_percentage) { channel.average_view_percentage_on 5.days.ago}
|
1629
|
-
it { expect(average_view_percentage).to be_a Float }
|
1630
|
-
end
|
1631
|
-
|
1632
|
-
context 'in which the channel was not partnered' do
|
1633
|
-
let(:average_view_percentage) { channel.average_view_percentage_on 20.years.ago}
|
1634
|
-
it { expect(average_view_percentage).to be_nil }
|
1635
|
-
end
|
1636
|
-
end
|
1637
|
-
|
1638
1113
|
describe 'average view percentage can be retrieved for a single country' do
|
1639
1114
|
let(:country_code) { 'US' }
|
1640
1115
|
let(:average_view_percentage) { channel.average_view_percentage since: date, by: by, in: location }
|
@@ -1703,45 +1178,10 @@ describe Yt::Channel, :partner do
|
|
1703
1178
|
end
|
1704
1179
|
end
|
1705
1180
|
|
1706
|
-
describe 'average view percentage can be retrieved for a range of days' do
|
1707
|
-
let(:date) { 4.days.ago }
|
1708
|
-
|
1709
|
-
specify 'with a given start (:since option)' do
|
1710
|
-
expect(channel.average_view_percentage(since: date).keys.min).to eq date.to_date
|
1711
|
-
end
|
1712
|
-
|
1713
|
-
specify 'with a given end (:until option)' do
|
1714
|
-
expect(channel.average_view_percentage(until: date).keys.max).to eq date.to_date
|
1715
|
-
end
|
1716
|
-
|
1717
|
-
specify 'with a given start (:from option)' do
|
1718
|
-
expect(channel.average_view_percentage(from: date).keys.min).to eq date.to_date
|
1719
|
-
end
|
1720
|
-
|
1721
|
-
specify 'with a given end (:to option)' do
|
1722
|
-
expect(channel.average_view_percentage(to: date).keys.max).to eq date.to_date
|
1723
|
-
end
|
1724
|
-
end
|
1725
|
-
|
1726
|
-
describe 'average view percentage can be grouped by range' do
|
1727
|
-
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
1728
|
-
|
1729
|
-
specify 'with the :by option set to :range' do
|
1730
|
-
percentage = channel.average_view_percentage range.merge by: :range
|
1731
|
-
expect(percentage.size).to be 1
|
1732
|
-
expect(percentage[:total]).to be_a Float
|
1733
|
-
end
|
1734
|
-
end
|
1735
|
-
|
1736
1181
|
describe 'average view percentage can be grouped by day' do
|
1737
1182
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
1738
1183
|
let(:keys) { range.values }
|
1739
1184
|
|
1740
|
-
specify 'without a :by option (default)' do
|
1741
|
-
average_view_percentage = channel.average_view_percentage range
|
1742
|
-
expect(average_view_percentage.keys).to eq range.values
|
1743
|
-
end
|
1744
|
-
|
1745
1185
|
specify 'with the :by option set to :day' do
|
1746
1186
|
average_view_percentage = channel.average_view_percentage range.merge by: :day
|
1747
1187
|
expect(average_view_percentage.keys).to eq range.values
|
@@ -1770,18 +1210,6 @@ describe Yt::Channel, :partner do
|
|
1770
1210
|
end
|
1771
1211
|
end
|
1772
1212
|
|
1773
|
-
describe 'impressions can be retrieved for a specific day' do
|
1774
|
-
context 'in which the channel was partnered' do
|
1775
|
-
let(:impressions) { channel.impressions_on 20.days.ago}
|
1776
|
-
it { expect(impressions).to be_an Integer }
|
1777
|
-
end
|
1778
|
-
|
1779
|
-
context 'in which the channel was not partnered' do
|
1780
|
-
let(:impressions) { channel.impressions_on 20.years.ago}
|
1781
|
-
it { expect(impressions).to be_nil }
|
1782
|
-
end
|
1783
|
-
end
|
1784
|
-
|
1785
1213
|
describe 'impressions can be retrieved for a single country' do
|
1786
1214
|
let(:country_code) { 'US' }
|
1787
1215
|
let(:impressions) { channel.impressions since: date, by: by, in: location }
|
@@ -1816,45 +1244,10 @@ describe Yt::Channel, :partner do
|
|
1816
1244
|
end
|
1817
1245
|
end
|
1818
1246
|
|
1819
|
-
describe 'impressions can be retrieved for a range of days' do
|
1820
|
-
let(:date) { 4.days.ago }
|
1821
|
-
|
1822
|
-
specify 'with a given start (:since option)' do
|
1823
|
-
expect(channel.impressions(since: date).keys.min).to eq date.to_date
|
1824
|
-
end
|
1825
|
-
|
1826
|
-
specify 'with a given end (:until option)' do
|
1827
|
-
expect(channel.impressions(until: date).keys.max).to eq date.to_date
|
1828
|
-
end
|
1829
|
-
|
1830
|
-
specify 'with a given start (:from option)' do
|
1831
|
-
expect(channel.impressions(from: date).keys.min).to eq date.to_date
|
1832
|
-
end
|
1833
|
-
|
1834
|
-
specify 'with a given end (:to option)' do
|
1835
|
-
expect(channel.impressions(to: date).keys.max).to eq date.to_date
|
1836
|
-
end
|
1837
|
-
end
|
1838
|
-
|
1839
|
-
describe 'impressions can be grouped by range' do
|
1840
|
-
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
1841
|
-
|
1842
|
-
specify 'with the :by option set to :range' do
|
1843
|
-
impressions = channel.impressions range.merge by: :range
|
1844
|
-
expect(impressions.size).to be 1
|
1845
|
-
expect(impressions[:total]).to be_an Integer
|
1846
|
-
end
|
1847
|
-
end
|
1848
|
-
|
1849
1247
|
describe 'impressions can be grouped by day' do
|
1850
1248
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
1851
1249
|
let(:keys) { range.values }
|
1852
1250
|
|
1853
|
-
specify 'without a :by option (default)' do
|
1854
|
-
impressions = channel.impressions range
|
1855
|
-
expect(impressions.keys).to eq range.values
|
1856
|
-
end
|
1857
|
-
|
1858
1251
|
specify 'with the :by option set to :day' do
|
1859
1252
|
impressions = channel.impressions range.merge by: :day
|
1860
1253
|
expect(impressions.keys).to eq range.values
|
@@ -1872,18 +1265,6 @@ describe Yt::Channel, :partner do
|
|
1872
1265
|
end
|
1873
1266
|
end
|
1874
1267
|
|
1875
|
-
describe 'monetized playbacks can be retrieved for a specific day' do
|
1876
|
-
context 'in which the channel was partnered' do
|
1877
|
-
let(:monetized_playbacks) { channel.monetized_playbacks_on 20.days.ago}
|
1878
|
-
it { expect(monetized_playbacks).to be_an Integer }
|
1879
|
-
end
|
1880
|
-
|
1881
|
-
context 'in which the channel was not partnered' do
|
1882
|
-
let(:monetized_playbacks) { channel.monetized_playbacks_on 20.years.ago}
|
1883
|
-
it { expect(monetized_playbacks).to be_nil }
|
1884
|
-
end
|
1885
|
-
end
|
1886
|
-
|
1887
1268
|
describe 'monetized playbacks can be retrieved for a single country' do
|
1888
1269
|
let(:country_code) { 'US' }
|
1889
1270
|
let(:monetized_playbacks) { channel.monetized_playbacks since: date, by: by, in: location }
|
@@ -1918,45 +1299,10 @@ describe Yt::Channel, :partner do
|
|
1918
1299
|
end
|
1919
1300
|
end
|
1920
1301
|
|
1921
|
-
describe 'monetized playbacks can be retrieved for a range of days' do
|
1922
|
-
let(:date) { 4.days.ago }
|
1923
|
-
|
1924
|
-
specify 'with a given start (:since option)' do
|
1925
|
-
expect(channel.monetized_playbacks(since: date).keys.min).to eq date.to_date
|
1926
|
-
end
|
1927
|
-
|
1928
|
-
specify 'with a given end (:until option)' do
|
1929
|
-
expect(channel.monetized_playbacks(until: date).keys.max).to eq date.to_date
|
1930
|
-
end
|
1931
|
-
|
1932
|
-
specify 'with a given start (:from option)' do
|
1933
|
-
expect(channel.monetized_playbacks(from: date).keys.min).to eq date.to_date
|
1934
|
-
end
|
1935
|
-
|
1936
|
-
specify 'with a given end (:to option)' do
|
1937
|
-
expect(channel.monetized_playbacks(to: date).keys.max).to eq date.to_date
|
1938
|
-
end
|
1939
|
-
end
|
1940
|
-
|
1941
|
-
describe 'monetized playbacks can be grouped by range' do
|
1942
|
-
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
1943
|
-
|
1944
|
-
specify 'with the :by option set to :range' do
|
1945
|
-
monetized_playbacks = channel.monetized_playbacks range.merge by: :range
|
1946
|
-
expect(monetized_playbacks.size).to be 1
|
1947
|
-
expect(monetized_playbacks[:total]).to be_an Integer
|
1948
|
-
end
|
1949
|
-
end
|
1950
|
-
|
1951
1302
|
describe 'monetized_playbacks can be grouped by day' do
|
1952
1303
|
let(:range) { {since: 4.days.ago.to_date, until: 3.days.ago.to_date} }
|
1953
1304
|
let(:keys) { range.values }
|
1954
1305
|
|
1955
|
-
specify 'without a :by option (default)' do
|
1956
|
-
monetized_playbacks = channel.monetized_playbacks range
|
1957
|
-
expect(monetized_playbacks.keys).to eq range.values
|
1958
|
-
end
|
1959
|
-
|
1960
1306
|
specify 'with the :by option set to :day' do
|
1961
1307
|
monetized_playbacks = channel.monetized_playbacks range.merge by: :day
|
1962
1308
|
expect(monetized_playbacks.keys).to eq range.values
|
@@ -2011,7 +1357,7 @@ describe Yt::Channel, :partner do
|
|
2011
1357
|
describe 'annotation clicks can be retrieved for a single US state' do
|
2012
1358
|
let(:state_code) { 'NY' }
|
2013
1359
|
let(:result) { channel.annotation_clicks since: date, by: by, in: location }
|
2014
|
-
let(:date) {
|
1360
|
+
let(:date) { ENV['YT_TEST_PARTNER_VIDEO_DATE'] }
|
2015
1361
|
|
2016
1362
|
context 'and grouped by day' do
|
2017
1363
|
let(:by) { :day }
|
@@ -2042,37 +1388,9 @@ describe Yt::Channel, :partner do
|
|
2042
1388
|
end
|
2043
1389
|
end
|
2044
1390
|
|
2045
|
-
describe 'annotation clicks can be retrieved for a range of days' do
|
2046
|
-
let(:date) { ENV['YT_TEST_PARTNER_VIDEO_DATE'] }
|
2047
|
-
let(:date_to) { Date.parse(ENV['YT_TEST_PARTNER_VIDEO_DATE']) + 5 }
|
2048
|
-
|
2049
|
-
specify 'with a given start (:since option) and a given end (:until option)' do
|
2050
|
-
expect(channel.annotation_clicks(since: date, until: date_to).keys.min).to eq date.to_date
|
2051
|
-
end
|
2052
|
-
|
2053
|
-
specify 'with a given start (:from option) and a given end (:to option)' do
|
2054
|
-
expect(channel.annotation_clicks(from: date, to: date_to).keys.min).to eq date.to_date
|
2055
|
-
end
|
2056
|
-
end
|
2057
|
-
|
2058
|
-
describe 'annotation clicks can be grouped by range' do
|
2059
|
-
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
2060
|
-
|
2061
|
-
specify 'with the :by option set to :range' do
|
2062
|
-
annotation_clicks = channel.annotation_clicks range.merge by: :range
|
2063
|
-
expect(annotation_clicks.size).to be 1
|
2064
|
-
expect(annotation_clicks[:total]).to be_an Integer
|
2065
|
-
end
|
2066
|
-
end
|
2067
|
-
|
2068
1391
|
describe 'annotation clicks can be grouped by day' do
|
2069
1392
|
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE'], until: Date.parse(ENV['YT_TEST_PARTNER_VIDEO_DATE']) + 5} }
|
2070
1393
|
|
2071
|
-
specify 'without a :by option (default)' do
|
2072
|
-
annotation_clicks = channel.annotation_clicks range
|
2073
|
-
expect(annotation_clicks.values).to all(be_an Integer)
|
2074
|
-
end
|
2075
|
-
|
2076
1394
|
specify 'with the :by option set to :day' do
|
2077
1395
|
annotation_clicks = channel.annotation_clicks range.merge by: :day
|
2078
1396
|
expect(annotation_clicks.values).to all(be_an Integer)
|
@@ -2138,7 +1456,7 @@ describe Yt::Channel, :partner do
|
|
2138
1456
|
describe 'annotation click-through rate can be retrieved for a single US state' do
|
2139
1457
|
let(:state_code) { 'NY' }
|
2140
1458
|
let(:result) { channel.annotation_click_through_rate since: date, by: by, in: location }
|
2141
|
-
let(:date) {
|
1459
|
+
let(:date) { ENV['YT_TEST_PARTNER_VIDEO_DATE'] }
|
2142
1460
|
|
2143
1461
|
context 'and grouped by day' do
|
2144
1462
|
let(:by) { :day }
|
@@ -2169,37 +1487,9 @@ describe Yt::Channel, :partner do
|
|
2169
1487
|
end
|
2170
1488
|
end
|
2171
1489
|
|
2172
|
-
describe 'annotation click-through rate can be retrieved for a range of days' do
|
2173
|
-
let(:date) { ENV['YT_TEST_PARTNER_VIDEO_DATE'] }
|
2174
|
-
let(:date_to) { Date.parse(ENV['YT_TEST_PARTNER_VIDEO_DATE']) + 5 }
|
2175
|
-
|
2176
|
-
specify 'with a given start (:since option) and a given end (:until option)' do
|
2177
|
-
expect(channel.annotation_click_through_rate(since: date, until: date_to).keys.min).to eq date.to_date
|
2178
|
-
end
|
2179
|
-
|
2180
|
-
specify 'with a given start (:from option) and a given end (:to option)' do
|
2181
|
-
expect(channel.annotation_click_through_rate(from: date, to: date_to).keys.min).to eq date.to_date
|
2182
|
-
end
|
2183
|
-
end
|
2184
|
-
|
2185
|
-
describe 'annotation click-through rate can be grouped by range' do
|
2186
|
-
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
2187
|
-
|
2188
|
-
specify 'with the :by option set to :range' do
|
2189
|
-
rate = channel.annotation_click_through_rate range.merge by: :range
|
2190
|
-
expect(rate.size).to be 1
|
2191
|
-
expect(rate[:total]).to be_a Float
|
2192
|
-
end
|
2193
|
-
end
|
2194
|
-
|
2195
1490
|
describe 'annotation click-through rate can be grouped by day' do
|
2196
1491
|
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE'], until: Date.parse(ENV['YT_TEST_PARTNER_VIDEO_DATE']) + 5} }
|
2197
1492
|
|
2198
|
-
specify 'without a :by option (default)' do
|
2199
|
-
annotation_click_through_rate = channel.annotation_click_through_rate range
|
2200
|
-
expect(annotation_click_through_rate.values).to all(be_instance_of Float)
|
2201
|
-
end
|
2202
|
-
|
2203
1493
|
specify 'with the :by option set to :day' do
|
2204
1494
|
annotation_click_through_rate = channel.annotation_click_through_rate range.merge by: :day
|
2205
1495
|
expect(annotation_click_through_rate.values).to all(be_instance_of Float)
|
@@ -2296,37 +1586,9 @@ describe Yt::Channel, :partner do
|
|
2296
1586
|
end
|
2297
1587
|
end
|
2298
1588
|
|
2299
|
-
describe 'annotation close rate can be retrieved for a range of days' do
|
2300
|
-
let(:date) { ENV['YT_TEST_PARTNER_VIDEO_DATE'] }
|
2301
|
-
let(:date_to) { Date.parse(ENV['YT_TEST_PARTNER_VIDEO_DATE']) + 5 }
|
2302
|
-
|
2303
|
-
specify 'with a given start (:since option) and a given end (:until option)' do
|
2304
|
-
expect(channel.annotation_close_rate(since: date, until: date_to).keys.min).to eq date.to_date
|
2305
|
-
end
|
2306
|
-
|
2307
|
-
specify 'with a given start (:from option) and a given end (:to option)' do
|
2308
|
-
expect(channel.annotation_close_rate(from: date, to: date_to).keys.min).to eq date.to_date
|
2309
|
-
end
|
2310
|
-
end
|
2311
|
-
|
2312
|
-
describe 'annotation close rate can be grouped by range' do
|
2313
|
-
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
2314
|
-
|
2315
|
-
specify 'with the :by option set to :range' do
|
2316
|
-
rate = channel.annotation_close_rate range.merge by: :range
|
2317
|
-
expect(rate.size).to be 1
|
2318
|
-
expect(rate[:total]).to be_a Float
|
2319
|
-
end
|
2320
|
-
end
|
2321
|
-
|
2322
1589
|
describe 'annotation close rate can be grouped by day' do
|
2323
1590
|
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE'], until: Date.parse(ENV['YT_TEST_PARTNER_VIDEO_DATE']) + 5} }
|
2324
1591
|
|
2325
|
-
specify 'without a :by option (default)' do
|
2326
|
-
annotation_close_rate = channel.annotation_close_rate range
|
2327
|
-
expect(annotation_close_rate.values).to all(be_instance_of Float)
|
2328
|
-
end
|
2329
|
-
|
2330
1592
|
specify 'with the :by option set to :day' do
|
2331
1593
|
annotation_close_rate = channel.annotation_close_rate range.merge by: :day
|
2332
1594
|
expect(annotation_close_rate.values).to all(be_instance_of Float)
|