baidu 1.2.10 → 2.0.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.
@@ -0,0 +1,119 @@
1
+ require 'spec_helper'
2
+
3
+ describe Baidu::SEM::AdgroupService do
4
+ subject{Baidu::SEM::AdgroupService.new($auth)}
5
+ describe '#getAllAdgroupId' do
6
+ it "should return hash with correct format calling getAllAdgroupId " do
7
+ response = subject.getAllAdgroupId
8
+ response.status.should == 0
9
+ response.desc.should == 'success'
10
+ response.quota.should == 2
11
+ response.rquota.should > 0
12
+ expect{ApiResponse.verify(response.body)}.not_to raise_error
13
+ # response.class.should == Hash
14
+ # response.should have_key :campaign_adgroup_ids
15
+ # response = response[:campaign_adgroup_ids]
16
+ # response.first.should have_key :campaign_id
17
+ # response.first.should have_key :adgroup_ids
18
+ # campaign_id = response.first[:campaign_id]
19
+ # campaign_id.to_i.to_s.should == campaign_id
20
+ # response.first[:adgroup_ids].class.should == Array
21
+ # adgroup_id = response.first[:adgroup_ids].first
22
+ # adgroup_id.to_i.to_s.should == adgroup_id
23
+ end
24
+ end
25
+
26
+ describe '#getAdgroupIdByCampaignId' do
27
+ # subject{Baidu::SEM::AdgroupService.new($auth)}
28
+ it "should return hash with correct format calling getAdgroupIdByCampaignId" do
29
+ response = subject.getAdgroupIdByCampaignId({:campaignIds=>[$campaign_id]})
30
+ response.status.should == 0
31
+ response.desc.should == 'success'
32
+ response.quota.should == 2
33
+ response.rquota.should > 0
34
+ expect{ApiResponse.verify(response.body)}.not_to raise_error
35
+ end
36
+ end
37
+
38
+ describe '#getAdgroupByCampaignId' do
39
+ # subject{Baidu::SEM::AdgroupService.new($auth)}
40
+ it "should return hash with correct format calling getAdgroupByCampaignId" do
41
+ pending
42
+ response = subject.getAdgroupByCampaignId({:campaignIds=>[$campaign_id]})
43
+ response.status.should == 0
44
+ response.desc.should == 'success'
45
+ response.quota.should == 2
46
+ response.rquota.should > 0
47
+ expect{ApiResponse.verify(response.body)}.not_to raise_error
48
+ # response.class.should == Hash
49
+ # response.should have_key :campaign_adgroups
50
+ end
51
+ end
52
+
53
+ # describe '#getAdgroupByAdgroupId' do
54
+ # # subject{Baidu::SEM::AdgroupService.new($auth)}
55
+ # it "should return hash with correct format calling getAdgroupByAdgroupId" do
56
+ # pending
57
+ # response = subject.getAdgroupByAdgroupId({:adgroupIds => $adgroup_ids})
58
+ # response.status.should == 0
59
+ # response.desc.should == 'success'
60
+ # response.quota.should == 2
61
+ # response.rquota.should > 0
62
+ # expect{ApiResponse.verify(response.body)}.not_to raise_error
63
+ # end
64
+ # end
65
+
66
+ describe '#addAdgroup #updateAdgroup #getAdgroupByAdgroupId #deleteAdgroup' do
67
+ # subject {Baidu::SEM::AdgroupService.new($aut)}
68
+ it "is not ready yet" do
69
+ #addAdgroup
70
+ adgroupType_add = {:campaignId=>$campaign_id,:adgroupName=>'adgroupName1',:maxPrice=>2}
71
+ response = subject.addAdgroup({:adgroupTypes => [adgroupType_add]})
72
+ response.status.should == 0
73
+ response.desc.should == 'success'
74
+ response.quota.should == 2
75
+ response.rquota.should > 0
76
+ # ap response.body
77
+ expect{ApiResponse.verify(response.body)}.not_to raise_error
78
+
79
+ #parse and verify adgroup_id
80
+ adgroup_id = response.body[:adgroup_types][:adgroup_id]
81
+ adgroup_id.to_i.to_s.should == adgroup_id
82
+
83
+ #updateAdgroup
84
+ adgroupType_update = {:adgroupId => adgroup_id, :adgroupName => 'adgroupName2'}
85
+ # ap adgroupType
86
+ response = subject.updateAdgroup({:adgroupTypes=>[adgroupType_update]})
87
+ response.status.should == 0
88
+ response.desc.should == 'success'
89
+ response.quota.should == 2
90
+ response.rquota.should > 0
91
+ # ap response.body
92
+ expect{ApiResponse.verify(response.body)}.not_to raise_error
93
+
94
+ #getAdgroupByAdgroupId
95
+ response = subject.getAdgroupByAdgroupId({:adgroupIds=>[adgroup_id]})
96
+ response.status.should == 0
97
+ response.desc.should == 'success'
98
+ response.quota.should == 2
99
+ response.rquota.should > 0
100
+ expect{ApiResponse.verify(response.body)}.not_to raise_error
101
+ response.body[:adgroup_types][:adgroup_name].should == 'adgroupName2'
102
+
103
+
104
+ #deleteAdgroup
105
+ response = subject.deleteAdgroup({:adgroupIds => [adgroup_id]})
106
+ response.status.should == 0
107
+ response.desc.should == 'success'
108
+ response.quota.should == 2
109
+ response.rquota.should > 0
110
+ # ap response.body
111
+ expect{ApiResponse.verify(response.body)}.not_to raise_error
112
+ ap response.body
113
+ # it "is not implemented yet" do
114
+ # pending("this is pending before we have testing-purpose account")
115
+ # end
116
+ end
117
+ end
118
+
119
+ end
@@ -0,0 +1,97 @@
1
+ require 'spec_helper'
2
+ describe ApiResponse do
3
+ let(:adgroup_type_sample) {
4
+ {
5
+ :adgroup_id => "8888888",
6
+ :campaign_id => "88888888",
7
+ :adgroup_name => "测试adgroup",
8
+ :max_price => "1.0",
9
+ :negative_words => "测试negative_words",
10
+ :pause => false,
11
+ :status => "31"
12
+ }}
13
+
14
+ let(:campaign_adgroup) {{
15
+ :campaign_id => "8888888",
16
+ :adgroup_types => [{
17
+ :adgroup_id => "8888888",
18
+ :campaign_id => "88888888",
19
+ :adgroup_name => "测试adgroup",
20
+ :max_price => "1.0",
21
+ :negative_words => "测试negative_words",
22
+ :pause => false,
23
+ :status => "31"
24
+ }]
25
+ }}
26
+
27
+ subject {ApiResponse}
28
+
29
+ it "should verify correct :campaign_id" do
30
+ expect{subject.verify({:campaign_id => "8888888"})}.not_to raise_error
31
+ expect{subject.verify({:campaign_id => "abc"})}.to raise_error
32
+ end
33
+
34
+ it "should verify :adgroup_id" do
35
+ expect{subject.verify({:adgroup_id => "88888888"})}.not_to raise_error
36
+ expect{subject.verify({:adgroup_id => "abc"})}.to raise_error
37
+ end
38
+
39
+ it "should verify :adgroup_name" do
40
+ expect{subject.verify({:adgroup_name => "adgroup_name1"})}.not_to raise_error
41
+ expect{subject.verify({:adgroup_name => ""})}.to raise_error
42
+ end
43
+
44
+ it "should verify :max_price" do
45
+ expect{subject.verify({:max_price => "0.2"})}.not_to raise_error
46
+ expect{subject.verify({:max_price => 0.2})}.to raise_error
47
+ expect{subject.verify({:max_price => 'abc'})}.to raise_error
48
+ end
49
+
50
+ it "should verify :pause" do
51
+ expect{subject.verify({:pause =>true})}.not_to raise_error
52
+ expect{subject.verify({:pause =>'true'})}.to raise_error
53
+ end
54
+
55
+ it "should verify :status" do
56
+ expect{subject.verify({:status => '131'})}.not_to raise_error
57
+ expect{subject.verify({:status => ''})}.to raise_error
58
+ end
59
+
60
+ it "should verify :campaign_adgroups" do
61
+ campaign_adgroups = []
62
+ campaign_adgroups << campaign_adgroup
63
+
64
+ expect{subject.verify(campaign_adgroup)}.not_to raise_error
65
+ expect{subject.verify({:campaign_adgroups => campaign_adgroups})}.not_to raise_error
66
+ end
67
+
68
+ it "should verify :exact_negative_words" do
69
+ exact_negative_words = []
70
+ exact_negative_words << 'nega1'
71
+ exact_negative_words << '否定词2'
72
+ negative_words = {:negative_words => exact_negative_words}
73
+ exact_negative_words = {:exact_negative_words => exact_negative_words}
74
+
75
+ expect{subject.verify(exact_negative_words)}.not_to raise_error
76
+ expect{subject.verify(negative_words)}.not_to raise_error
77
+ end
78
+
79
+ it "adgroup_types" do
80
+ adgroup_types = []
81
+ adgroup_types << adgroup_type_sample
82
+ adgroup_types << adgroup_type_sample
83
+ adgroup_types = {:adgroup_types => adgroup_types}
84
+ adgroup_type = {:adgroup_type => adgroup_type_sample}
85
+
86
+ expect{subject.verify(adgroup_types)}.not_to raise_error
87
+ expect{subject.verify(adgroup_type)}.not_to raise_error
88
+ end
89
+
90
+ it "campaign_infos" do
91
+ campaign_infos = {}
92
+ campaign_infos[:campaign_id] = '88888888'
93
+ campaign_infos[:campaign_name] = 'campaign_name'
94
+
95
+ expect{subject.verify({:campaign_infos => campaign_infos})}.not_to raise_error
96
+ end
97
+ end
@@ -0,0 +1,89 @@
1
+ require 'spec_helper'
2
+ describe Baidu::SEM::BulkJobService do
3
+ subject{Baidu::SEM::BulkJobService.new($auth)}
4
+ let(:startTime){(Time.now - 24*3600).utc.iso8601}
5
+ let(:options){{:startTime=>startTime}}
6
+ describe '#getChangedCampaignId' do
7
+ it "getChangedCampaignId" do
8
+ # options = {}
9
+ # options[:startTime] = startTime
10
+ response = subject.getChangedCampaignId(options).body
11
+ expect{ApiResponse.verify(response)}.not_to raise_error
12
+ end
13
+ end
14
+
15
+ describe '#getChangedId' do
16
+ it "getChangedId" do
17
+ # options = {}
18
+ # options[:startTime] = startTime
19
+ response = subject.getChangedId(options).body
20
+ expect{ApiResponse.verify(response)}.not_to raise_error
21
+ end
22
+ end
23
+
24
+ describe '#getChangedNewCreativeId' do
25
+ it "getChangedNewCreativeId" do
26
+ # options = {}
27
+ # options[:startTime] = startTime
28
+ options[:newCreativeType] = 1
29
+ response = subject.getChangedNewCreativeId(options).body
30
+ expect{ApiResponse.verify(response)}.not_to raise_error
31
+ end
32
+ end
33
+
34
+ describe '#getChangedScale' do
35
+ it "getChangedScale" do
36
+ response = subject.getChangedScale(options).body
37
+ expect{ApiResponse.verify(response)}.not_to raise_error
38
+ end
39
+ end
40
+
41
+ describe '#getAllObjects' do
42
+ it "getAllObjects" do
43
+ response = subject.getAllObjects.body
44
+ expect{ApiResponse.verify(response)}.not_to raise_error
45
+ end
46
+ end
47
+
48
+ describe '#getAllChangedObjects' do
49
+ it "getAllChangedObjects" do
50
+ response = subject.getAllChangedObjects(options).body
51
+ expect{ApiResponse.verify(response)}.not_to raise_error
52
+ end
53
+ end
54
+
55
+ describe '#getFileState' do
56
+ it "getFileState" do
57
+ pending('error:Last file task not finish')
58
+ response = subject.getAllObjects.body
59
+ file_id = response[:file_id]
60
+ options[:fileId] = file_id
61
+ response = subject.getFileState(options).body
62
+ expect{ApiResponse.verify(response)}.not_to raise_error
63
+ sleep 3
64
+ response = subject.getFilePath(options).body
65
+ expect{ApiResponse.verify(response)}.not_to raise_error
66
+ end
67
+ end
68
+
69
+ describe '#getChangedAdgroupId' do
70
+ it "getChangedAdgroupId" do
71
+ response = subject.getChangedAdgroupId(options).body
72
+ expect{ApiResponse.verify(response)}
73
+ end
74
+ end
75
+
76
+ describe '#getChangedItemId' do
77
+ it "getChangedItemId" do
78
+ response = subject.getChangedItemId(options).body
79
+ expect{ApiResponse.verify(response)}
80
+ end
81
+ end
82
+
83
+ describe '#getSelectedObjects' do
84
+ it "getSelectedObjects" do
85
+ response = subject.getSelectedObjects(options).body
86
+ expect{ApiResponse.verify(response)}
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,94 @@
1
+ require 'spec_helper'
2
+ describe Baidu::SEM::CampaignService do
3
+ subject{Baidu::SEM::CampaignService.new($auth)}
4
+
5
+ describe '#addCampaign #updateCampaign #getCampaignByCampaignId #deleteCampaign' do
6
+ it "should not raise errors when add, update, and delete a temp campaign" do
7
+ #addCampaign
8
+ campaign_type_add = {
9
+ :campaignName=> 'campaignName1',
10
+ :budget => '100',
11
+ :negativeWords => ['7day'],
12
+ :exactNegativeWords => ['7daysin']
13
+ }
14
+ options = {:campaignTypes => [campaign_type_add]}
15
+ response = subject.addCampaign(options)
16
+ response.status.should == 0
17
+ response.desc.should == 'success'
18
+ response.quota.should == 2
19
+ response.rquota.should > 0
20
+ expect{ApiResponse.verify(response.body)}.not_to raise_error
21
+
22
+ #parse and verify campaign_id
23
+ campaign_id = response.body[:campaign_types][:campaign_id]
24
+ campaign_id.to_i.to_s.should == campaign_id
25
+
26
+ #updateCampaign
27
+ campaign_type_update =
28
+ {
29
+ :campaignId => campaign_id,
30
+ :campaignName => 'campaignName3',
31
+ :budget => '101',
32
+ :negativeWords => ['8day'],
33
+ :exactNegativeWords => ['8daysin']
34
+ }
35
+ sleep 2
36
+ options = {:campaignTypes => [campaign_type_update]}
37
+ response = subject.updateCampaign(options)
38
+ ap response.body
39
+ response.status.should == 0
40
+ response.desc.should == 'success'
41
+ response.quota.should == 2
42
+ response.rquota.should > 0
43
+ expect{ApiResponse.verify(response.body)}.not_to raise_error
44
+
45
+ #check the result of updateCampaign by getCampaignByCampaignId
46
+ response = subject.getCampaignByCampaignId({:campaignIds => [campaign_id]})
47
+ response.status.should == 0
48
+ response.desc.should == 'success'
49
+ response.quota.should == 2
50
+ response.rquota.should > 0
51
+ expect{ApiResponse.verify(response.body)}.not_to raise_error
52
+ # ap response.body
53
+ response.body[:campaign_types][:campaign_name].should == 'campaignName3'
54
+ response.body[:campaign_types][:budget].should == '101.0'
55
+ response.body[:campaign_types][:negative_words].should == '8day'
56
+ response.body[:campaign_types][:exact_negative_words].should == "8daysin"
57
+
58
+ #deleteCampaign
59
+ response = subject.deleteCampaign({:campaignIds=>[campaign_id]})
60
+ response.status.should == 0
61
+ response.desc.should == 'success'
62
+ response.quota.should == 2
63
+ response.rquota.should > 0
64
+ expect{ApiResponse.verify(response.body)}.not_to raise_error
65
+ response.body[:result].should == '1'
66
+ end
67
+ end
68
+
69
+ # describe '#getCampaignByCampaignId' do
70
+ # it "getCampaignByCampaignId" do
71
+ # # puts '==============='
72
+ # # puts subject.example('getAllCampaign')
73
+ # # {:GetCampaignByCampaignIdRequest=>{:campaignIds=>["long"]}}
74
+ # # puts '==============='
75
+ # response = subject.getCampaignByCampaignId({:campaignIds=>[$campaign_id]})
76
+ # response.status.should == 0
77
+ # response.desc.should == 'success'
78
+ # response.quota.should == 2
79
+ # response.rquota.should > 0
80
+ # expect{ApiResponse.verify(response.body)}.not_to raise_error
81
+ # end
82
+ # end
83
+
84
+ describe '#getAllCampaign' do
85
+ it "getAllCampaign" do
86
+ response = subject.getAllCampaign({})
87
+ response.status.should == 0
88
+ response.desc.should == 'success'
89
+ response.quota.should == 2
90
+ response.rquota.should > 0
91
+ expect{ApiResponse.verify(response.body)}.not_to raise_error
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,79 @@
1
+ require 'spec_helper'
2
+ require 'uri'
3
+ describe Baidu::SEM::CreativeService do
4
+ subject{Baidu::SEM::CreativeService.new($auth)}
5
+ let(:new_title){'新测试创意标题'}
6
+ it '#addCreative #updateCreative #getCreativeByCreativeId #deleteCreative' do
7
+ #addCreative
8
+ creativeType = {
9
+ :adgroupId => $adgroup_id,
10
+ :title => '测试创意标题',
11
+ :description1 => '测试创意首行测试创意首行测试创意首行',
12
+ :description2 => '测试创意次行测试创意次行测试创意次行',
13
+ :pcDestinationUrl => $pcDestinationUrl,
14
+ :pcDisplayUrl=> URI($pcDestinationUrl).host,
15
+ :mobileDestinationUrl => $mobileDestinationUrl,
16
+ :mobileDisplayUrl=> URI($mobileDestinationUrl).host
17
+ }
18
+ # {:creativeTypes=>[{
19
+ # :creativeId=>"long",
20
+ # :adgroupId=>"long",
21
+ # :title=>"string",
22
+ # :description1=>"string",
23
+ # :description2=>"string",
24
+ # :pcDestinationUrl=>"string",
25
+ # :pcDisplayUrl=>"string",
26
+ # :mobileDestinationUrl=>"string",
27
+ # :mobileDisplayUrl=>"string",
28
+ # :pause=>"boolean",
29
+ # :status=>"int"}]
30
+ # }
31
+ # }
32
+
33
+ # puts subject.example('addCreative')
34
+ response = subject.addCreative({:creativeTypes => [creativeType]})
35
+ response.status.should == 0
36
+ response.desc.should == 'success'
37
+ response.quota.should == 2
38
+ response.rquota.should > 0
39
+ expect{ApiResponse.verify(response.body)}.not_to raise_error
40
+
41
+ creative_id = response.body[:creative_types][:creative_id]
42
+
43
+
44
+ # updateCreative
45
+ creativeType = {
46
+ :creativeId=>creative_id,
47
+ :title => new_title,
48
+ :description1 => '艺龙酒店测试创意首行测试创意首行测试创意首行',
49
+ :description2 => '艺龙酒店测试创意首行测试创意首行测试创意次行',
50
+ :pcDestinationUrl => 'http://hotel.elong.com/beijing/'
51
+ }
52
+ response = subject.updateCreative(:creativeTypes => [creativeType])
53
+ response.status.should == 0
54
+ response.desc.should == 'success'
55
+ response.quota.should == 2
56
+ response.rquota.should > 0
57
+ expect{ApiResponse.verify(response.body)}.not_to raise_error
58
+
59
+ #getCreativeByCreativeId
60
+ sleep 3
61
+ response = subject.getCreativeByCreativeId(:creativeIds => [creative_id])
62
+ response.status.should == 0
63
+ response.desc.should == 'success'
64
+ response.quota.should == 2
65
+ response.rquota.should > 0
66
+ response.body[:creative_types][:title].should == new_title
67
+ expect{ApiResponse.verify(response.body)}.not_to raise_error
68
+
69
+ #deleteCreative
70
+ response = subject.deleteCreative({:creativeIds => [creative_id]})
71
+ response.status.should == 0
72
+ response.desc.should == 'success'
73
+ response.quota.should == 2
74
+ response.rquota.should > 0
75
+ response.body[:result].should == '1'
76
+ expect{ApiResponse.verify(response.body)}.not_to raise_error
77
+ end
78
+
79
+ end