fastly 1.1.4 → 1.1.5

Sign up to get free protection for your applications and to get access to all the features.
data/test/common.rb CHANGED
@@ -1,6 +1,7 @@
1
+ # Common tests
1
2
  module CommonTests
2
3
  def test_creating_service_and_backend
3
- name = "fastly-test-service-#{get_rand}"
4
+ name = "fastly-test-service-#{random_string}"
4
5
  service = @fastly.create_service(:name => name)
5
6
  assert service
6
7
  assert_equal name, service.name
@@ -19,40 +20,39 @@ module CommonTests
19
20
  default_ttl = settings.settings['general.default_ttl']
20
21
  settings = version.settings
21
22
  assert settings
22
- assert_equal settings.service_id, service.id
23
- assert_equal settings.version.to_s, version.number.to_s
24
- assert_equal settings.settings['general.default_ttl'], default_ttl
23
+ assert_equal service.id, settings.service_id
24
+ assert_equal version.number.to_s, settings.version.to_s
25
+ assert_equal default_ttl, settings.settings['general.default_ttl']
25
26
 
26
- settings.settings['general.default_ttl'] = default_ttl = "888888888"
27
- settings.save!;
27
+ settings.settings['general.default_ttl'] = default_ttl = '888888888'
28
+ settings.save!
28
29
 
29
30
  settings = version.settings
30
- assert_equal settings.settings['general.default_ttl'].to_s, default_ttl;
31
+ assert_equal default_ttl, settings.settings['general.default_ttl'].to_s
31
32
 
32
33
  services = @fastly.list_services
33
34
  assert !services.empty?
34
35
  assert !services.select { |s| s.name == name }.empty?
35
36
 
36
- service = @fastly.search_services( :name => name )
37
+ service = @fastly.search_services(:name => name)
37
38
  assert service
38
39
  assert name, service.name
39
40
 
40
-
41
- service = @fastly.search_services( :name => name, :version => version.number )
41
+ service = @fastly.search_services(:name => name, :version => version.number)
42
42
  assert services
43
43
  assert name, service.name
44
44
 
45
45
  version2 = @fastly.create_version(:service_id => service.id)
46
46
  assert version2
47
- assert_equal = version.number.to_i+1, version2.number.to_i
47
+ assert_equal version.number.to_i + 1, version2.number.to_i
48
48
 
49
49
  version3 = version2.clone
50
50
  assert version3
51
- assert_equal = version2.number.to_i+1, version3.number.to_i
51
+ assert_equal version2.number.to_i + 1, version3.number.to_i
52
52
 
53
53
  number = version3.number.to_i
54
54
 
55
- backend_name = "fastly-test-backend-#{get_rand}"
55
+ backend_name = "fastly-test-backend-#{random_string}"
56
56
  backend = begin
57
57
  @fastly.create_backend(:service_id => service.id, :version => number, :hostname => 'localhost', :name => backend_name)
58
58
  rescue Fastly::Error
@@ -62,7 +62,7 @@ module CommonTests
62
62
  backend = @fastly.create_backend(:service_id => service.id, :version => number, :address => '74.125.224.146', :name => backend_name)
63
63
  assert backend
64
64
  assert_equal backend.service_id, service.id
65
- #assert_equal backend.ipv4, '74.125.224.146'
65
+ # assert_equal backend.ipv4, '74.125.224.146'
66
66
  assert_equal backend.address, '74.125.224.146'
67
67
  assert_equal backend.port.to_s, '80'
68
68
 
@@ -72,92 +72,91 @@ module CommonTests
72
72
  backend = @fastly.get_backend(service.id, number, backend_name)
73
73
 
74
74
  assert backend
75
- assert_equal backend.address, 'thegestalt.org'
76
- #assert_equal backend.hostname, 'thegestalt.org'
77
- assert_equal backend.port.to_s, '9092'
78
-
75
+ assert_equal 'thegestalt.org', backend.address
76
+ # assert_equal backend.hostname, 'thegestalt.org'
77
+ assert_equal '9092', backend.port.to_s
79
78
 
80
- domain_name = "fastly-test-domain-#{get_rand}-example.com"
79
+ domain_name = "fastly-test-domain-#{random_string}-example.com"
81
80
  domain = @fastly.create_domain(:service_id => service.id, :version => number, :name => domain_name)
82
81
  assert domain
83
82
  assert_equal domain_name, domain.name
84
- assert_equal domain.service.id, service.id
85
- assert_equal domain.version_number.to_s, number.to_s
86
- assert_equal domain.version.number.to_s, number.to_s
83
+ assert_equal service.id, domain.service.id
84
+ assert_equal number.to_s, domain.version_number.to_s
85
+ assert_equal number.to_s, domain.version.number.to_s
87
86
 
88
- domain.comment = "Flibbety gibbet"
87
+ domain.comment = 'Flibbety gibbet'
89
88
  domain.save!
90
89
  domain = @fastly.get_domain(service.id, number, domain_name)
91
- assert_equal domain.name, domain_name
92
- assert_equal domain.comment, "Flibbety gibbet"
90
+ assert_equal domain_name, domain.name
91
+ assert_equal 'Flibbety gibbet', domain.comment
93
92
 
94
- director_name = "fastly-test-director-#{get_rand}"
93
+ director_name = "fastly-test-director-#{random_string}"
95
94
  director = @fastly.create_director(:service_id => service.id, :version => number, :name => director_name)
96
95
  assert director
97
96
  assert_equal director_name, director.name
98
- assert_equal director.service.id, service.id
99
- assert_equal director.version_number.to_s, number.to_s
100
- assert_equal director.version.number.to_s, number.to_s
97
+ assert_equal service.id, director.service.id
98
+ assert_equal number.to_s, director.version_number.to_s
99
+ assert_equal number.to_s, director.version.number.to_s
101
100
 
102
101
  assert director.add_backend(backend)
103
- generated2 = version3.generated_vcl
102
+ # generated2 = version3.generated_vcl
104
103
 
105
- origin_name = "fastly-test-origin-#{get_rand}"
104
+ origin_name = "fastly-test-origin-#{random_string}"
106
105
  origin = @fastly.create_origin(:service_id => service.id, :version => number, :name => origin_name)
107
106
  assert origin
108
107
  assert_equal origin_name, origin.name
109
- assert_equal origin.service.id, service.id
110
- assert_equal origin.version_number.to_s, number.to_s
108
+ assert_equal service.id, origin.service.id
109
+ assert_equal number.to_s, origin.version_number.to_s
111
110
  # assert_equal origin.version.number.to_s, number.to_s
112
111
 
113
- condition_name = "fastly-test-condition-#{get_rand}"
112
+ condition_name = "fastly-test-condition-#{random_string}"
114
113
  condition_statement = 'req.url ~ "^/foo"'
115
- condition = @fastly.create_condition(:service_id => service.id, :version => number, :name => condition_name, :statement => condition_statement, :type => "REQUEST")
114
+ condition = @fastly.create_condition(:service_id => service.id, :version => number, :name => condition_name, :statement => condition_statement, :type => 'REQUEST')
116
115
  assert condition
117
116
  assert_equal condition_name, condition.name
118
117
  assert_equal condition_statement, condition.statement
119
118
 
120
119
  cache_condition_name = "cache-#{condition_name}"
121
- cache_condition = @fastly.create_condition(:service_id => service.id, :version => number, :name => cache_condition_name, :statement => condition_statement, :type => "CACHE")
120
+ cache_condition = @fastly.create_condition(:service_id => service.id, :version => number, :name => cache_condition_name, :statement => condition_statement, :type => 'CACHE')
122
121
  assert cache_condition
123
122
  assert_equal cache_condition_name, cache_condition.name
124
123
  assert_equal condition_statement, cache_condition.statement
125
124
 
126
- cache_setting_name = "fastly-cache-setting-#{get_rand}"
127
- cache_setting = @fastly.create_cache_setting( :service_id => service.id, :version => number, :name => cache_setting_name, :ttl => 3600, :stale_ttl => 10001, :cache_condition => cache_condition_name)
125
+ cache_setting_name = "fastly-cache-setting-#{random_string}"
126
+ cache_setting = @fastly.create_cache_setting(:service_id => service.id, :version => number, :name => cache_setting_name, :ttl => 3600, :stale_ttl => 10_001, :cache_condition => cache_condition_name)
128
127
  assert cache_setting
129
- assert_equal cache_setting.name, cache_setting_name
130
- assert_equal cache_setting.ttl.to_s, 3600.to_s
131
- assert_equal cache_setting.stale_ttl.to_s, 10001.to_s
132
- assert_equal cache_setting.cache_condition, cache_condition_name
128
+ assert_equal cache_setting_name, cache_setting.name
129
+ assert_equal '3600', cache_setting.ttl.to_s
130
+ assert_equal '10001', cache_setting.stale_ttl.to_s
131
+ assert_equal cache_condition_name, cache_setting.cache_condition
133
132
 
134
- gzip_name = "fastly-test-gzip-#{get_rand}"
135
- gzip = @fastly.create_gzip( :service_id => service.id, :version => number, :name => gzip_name, :extensions => "js css html", :content_types => "text/html")
133
+ gzip_name = "fastly-test-gzip-#{random_string}"
134
+ gzip = @fastly.create_gzip(:service_id => service.id, :version => number, :name => gzip_name, :extensions => 'js css html', :content_types => 'text/html')
136
135
  assert gzip
137
136
  assert_equal gzip_name, gzip.name
138
- assert_equal "text/html", gzip.content_types
139
- assert_equal "js css html", gzip.extensions
137
+ assert_equal 'text/html', gzip.content_types
138
+ assert_equal 'js css html', gzip.extensions
140
139
 
141
- response_obj_name = "fastly-test-response-obj-#{get_rand}"
142
- response_obj = @fastly.create_response_object( :service_id => service.id, :version => number, :name => response_obj_name, :status => 418, :response => "I'm a teapot", :content_type => "text/plain", :content => "short and stout")
140
+ response_obj_name = "fastly-test-response-obj-#{random_string}"
141
+ response_obj = @fastly.create_response_object(:service_id => service.id, :version => number, :name => response_obj_name, :status => 418, :response => "I'm a teapot", :content_type => 'text/plain', :content => 'short and stout')
143
142
  assert response_obj
144
143
  assert_equal response_obj_name, response_obj.name
145
- assert_equal 418.to_s, response_obj.status
144
+ assert_equal '418', response_obj.status
146
145
  assert_equal "I'm a teapot", response_obj.response
147
- assert_equal "text/plain", response_obj.content_type
148
- assert_equal "short and stout", response_obj.content
146
+ assert_equal 'text/plain', response_obj.content_type
147
+ assert_equal 'short and stout', response_obj.content
149
148
 
150
- response_condition_name = "fastly-response-condition-#{get_rand}"
151
- response_condition = @fastly.create_condition(:service_id => service.id, :version => number, :name => response_condition_name, :statement => condition_statement, :type => "RESPONSE")
152
- header_name = "fastly-header-test-#{get_rand}"
153
- header = @fastly.create_header( :service_id => service.id, :version => number, :name => header_name, :response_condition => response_condition.name, :ignore_if_set => 1, :type => "response", :dst => "http.Cache-Control", :src => '"max-age=301"', :priority => 10, :action => "set")
149
+ response_condition_name = "fastly-response-condition-#{random_string}"
150
+ response_condition = @fastly.create_condition(:service_id => service.id, :version => number, :name => response_condition_name, :statement => condition_statement, :type => 'RESPONSE')
151
+ header_name = "fastly-header-test-#{random_string}"
152
+ header = @fastly.create_header(:service_id => service.id, :version => number, :name => header_name, :response_condition => response_condition.name, :ignore_if_set => 1, :type => 'response', :dst => 'http.Cache-Control', :src => '"max-age=301"', :priority => 10, :action => 'set')
154
153
  assert header
155
- assert_equal header.name, header_name
156
- assert_equal header.response_condition, response_condition.name
157
- assert_equal header.ignore_if_set.to_s, 1.to_s
158
- assert_equal header.dst, "http.Cache-Control"
159
- assert_equal header.src, '"max-age=301"'
160
- assert_equal header.action, "set"
154
+ assert_equal header_name, header.name
155
+ assert_equal response_condition.name, header.response_condition
156
+ assert_equal '1', header.ignore_if_set.to_s
157
+ assert_equal 'http.Cache-Control', header.dst
158
+ assert_equal '"max-age=301"', header.src
159
+ assert_equal 'set', header.action
161
160
 
162
161
  assert version3.activate!
163
162
  assert version3.deactivate!
@@ -186,7 +185,7 @@ module CommonTests
186
185
  end
187
186
 
188
187
  def test_stats
189
- name = "fastly-test-service-#{get_rand}"
188
+ name = "fastly-test-service-#{random_string}"
190
189
  service = @fastly.create_service(:name => name)
191
190
  assert service
192
191
  assert_equal name, service.name
@@ -196,7 +195,7 @@ module CommonTests
196
195
 
197
196
  begin
198
197
  stats = service.stats
199
- rescue Fastly::Error => e
198
+ rescue Fastly::Error
200
199
  end
201
200
  assert stats.nil?
202
201
 
@@ -206,7 +205,7 @@ module CommonTests
206
205
  end
207
206
 
208
207
  def test_invoices
209
- name = "fastly-test-service-#{get_rand}"
208
+ name = "fastly-test-service-#{random_string}"
210
209
  service = @fastly.create_service(:name => name)
211
210
  assert service
212
211
  assert_equal name, service.name
@@ -214,7 +213,7 @@ module CommonTests
214
213
  invoice = service.invoice
215
214
  assert invoice
216
215
  assert invoice.regions
217
- assert_equal invoice.service_id, service.id
216
+ assert_equal service.id, invoice.service_id
218
217
 
219
218
  invoice = @fastly.get_invoice
220
219
  assert_equal Fastly::Invoice, invoice.class
@@ -231,5 +230,4 @@ module CommonTests
231
230
  assert_equal month, invoice.end.month
232
231
  @fastly.delete_service(service)
233
232
  end
234
-
235
233
  end
@@ -1,5 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
+ # Fastly Util class tests
3
4
  class Fastly
4
5
  class FooBar; end
5
6
  class FooBarBaz; end
@@ -1,95 +1,90 @@
1
1
  require 'helper'
2
2
 
3
- class FullLoginTest < Fastly::TestCase
4
- include CommonTests
5
-
6
- def setup
7
- @opts = login_opts(:full).merge(:use_curb => false)
8
- begin
9
- @client = Fastly::Client.new(@opts)
10
- @fastly = Fastly.new(@opts)
11
- rescue Exception => e
12
- warn e.inspect
13
- warn e.backtrace.join("\n")
14
- exit(-1)
3
+ # Test username/password login access to user and customer objects
4
+ class Fastly
5
+ describe 'FullLoginTest' do
6
+ let(:opts) { login_opts(:full) }
7
+ let(:client) { Client.new(opts) }
8
+ let(:fastly) { Fastly.new(opts) }
9
+ let(:current_user) { fastly.current_user }
10
+ let(:current_customer) { fastly.current_customer }
11
+
12
+ describe '#current_{user,customer}' do
13
+ it 'should have access to current user' do
14
+ assert_instance_of User, current_user
15
+ assert_equal opts[:user], current_user.login
16
+ end
17
+
18
+ it 'should have access to current customer' do
19
+ assert_instance_of Customer, current_customer
20
+ end
21
+
22
+ it 'should have an arbitrary test confirming clearly defined relationships' do
23
+ assert_equal current_customer.id, current_user.customer.id
24
+ assert_equal current_user.id, current_customer.owner.id
25
+ end
15
26
  end
16
- end
17
-
18
- def test_raw_client
19
- user = @client.get('/current_user')
20
- assert user
21
- assert_equal @opts[:user], user['login']
22
- assert_equal @opts[:name], user['name']
23
-
24
- customer = @client.get('/current_customer')
25
- assert customer
26
- assert_equal @opts[:customer], customer['name']
27
- end
28
27
 
28
+ describe '#get_user' do
29
+ let(:user) { fastly.get_user(current_user.id) }
29
30
 
30
- def test_current_user_and_customer
31
- user = @fastly.current_user
32
- assert user
33
- assert_equal @opts[:user], user.login
34
- assert_equal @opts[:name], user.name
35
-
36
- customer = @fastly.current_customer
37
- assert customer
38
- assert_equal @opts[:customer], customer.name
39
-
40
- tmp_customer = user.customer
41
- assert_equal customer.id, tmp_customer.id
42
-
43
- tmp_user = customer.owner
44
- assert tmp_user
45
- assert_equal user.id, tmp_user.id
46
- end
47
-
31
+ it 'should be able to fetch a user' do
32
+ assert_equal current_user.name, user.name
33
+ end
34
+ end
48
35
 
49
- def test_fetching_particular_user
50
- current_user = @fastly.current_user
51
- assert current_user
36
+ describe '#get_customer' do
37
+ let(:customer) { fastly.get_customer(current_customer.id) }
52
38
 
53
- id_user = @fastly.get_user(current_user.id)
54
- assert_equal current_user.id, id_user.id
55
- assert_equal current_user.name, id_user.name
39
+ it 'should be able to fetch a customer' do
40
+ assert_equal current_customer.name, customer.name
41
+ end
42
+ end
56
43
 
57
- # FIXME looking up by login doesn't work yet
58
- #login_user = @fastly.get_user(current_user.login)
59
- #assert_equal current_user.id, login_user.id
60
- #assert_equal current_user.name, login_user.name
44
+ describe '#create_user' do
45
+ let(:email) { "fastly-ruby-test-#{random_string}-new@example.com" }
46
+ let(:user_name) { 'New User' }
47
+ let(:user) { fastly.create_user(login: email, name: user_name) }
48
+
49
+ it 'should create the user we wanted to create' do
50
+ assert_instance_of User, user
51
+ assert_equal current_customer.id, user.customer_id
52
+ assert_equal user_name, user.name
53
+ assert_equal email, user.login
54
+ end
55
+
56
+ after do
57
+ fastly.delete_user(user)
58
+ end
59
+ end
61
60
 
62
- current_customer = @fastly.current_customer
63
- assert current_customer
61
+ describe '#update_user' do
62
+ let(:email) { "fastly-ruby-test-#{random_string}-new@example.com" }
63
+ let(:user_name) { 'New User' }
64
+ let(:user) { fastly.create_user(login: email, name: user_name) }
65
+ let(:new_name) { 'New Name' }
66
+
67
+ it 'should allow us to update the user' do
68
+ assert_instance_of User, user
69
+ user.name = new_name
70
+ assert_equal new_name, fastly.update_user(user).name
71
+ end
72
+
73
+ after do
74
+ fastly.delete_user(user)
75
+ end
76
+ end
64
77
 
65
- customer = @fastly.get_customer(current_customer.id)
66
- assert_equal current_customer.id, customer.id
67
- assert_equal current_customer.name, customer.name
68
- end
78
+ describe '#delete_user' do
79
+ let(:email) { "fastly-ruby-test-#{random_string}-new@example.com" }
80
+ let(:user_name) { 'New User' }
81
+ let(:user) { fastly.create_user(login: email, name: user_name) }
69
82
 
70
- def test_creating_and_updating_user
71
- customer = @fastly.current_customer
72
- email = "fastly-ruby-test-#{get_rand}-new@example.com"
73
- user = @fastly.create_user(:login => email, :name => "New User")
74
- assert user
75
- assert_equal customer.id, user.customer_id
76
- assert_equal "New User", user.name
77
- assert_equal email, user.login
78
-
79
- tmp = @fastly.get_user(user.id)
80
-
81
- assert tmp
82
- assert_equal user.id, tmp.id
83
- assert_equal user.name, tmp.name
84
-
85
- user.name = "Updated Name"
86
- tmp = @fastly.update_user(user)
87
- assert tmp
88
- assert_equal user.id, tmp.id
89
- assert_equal "Updated Name", tmp.name
90
-
91
- assert @fastly.delete_user(user)
92
- tmp = @fastly.get_user(user.id)
93
- assert_equal nil, tmp
83
+ it 'should allow us to delete a user' do
84
+ user_id = user.id
85
+ assert_equal true, fastly.delete_user(user)
86
+ assert_equal nil, fastly.get_user(user_id)
87
+ end
88
+ end
94
89
  end
95
90
  end
data/test/helper.rb CHANGED
@@ -1,40 +1,31 @@
1
1
  require 'common'
2
2
  require 'fastly'
3
3
  require 'minitest/autorun'
4
+ require 'pry'
4
5
 
5
- # Accommodate a more modern version of Minitest compared to the stdlib
6
- if defined? Minitest::Test
7
- class Fastly::TestCase < Minitest::Test
8
- end
9
- else
10
- class Fastly::TestCase < MiniTest::Unit::TestCase
11
- end
12
- end
13
-
14
- class Fastly::TestCase
15
- # Map inconsistency between Test::Unit and Minitest
16
- alias :assert_raise :assert_raises
6
+ class Fastly
7
+ class TestCase < Minitest::Test; end
17
8
  end
18
9
 
19
- def login_opts(mode=:full)
20
- opts = { }
21
- [:url,:port].each do |what|
10
+ def login_opts(mode = :full)
11
+ opts = {}
12
+ [:url, :port].each do |what|
22
13
  key = "FASTLY_TEST_BASE_#{what.to_s.upcase}"
23
- opts["base_#{what}".to_sym] = ENV[key] if ENV.has_key?(key)
14
+ opts["base_#{what}".to_sym] = ENV[key] if ENV.key?(key)
24
15
  end
25
16
 
26
- required = :full == mode ? [:user, :name, :password, :customer] : [:api_key, :customer]
17
+ required = :full == mode ? [:user, :password] : [:api_key]
27
18
  required.each do |what|
28
- key ="FASTLY_TEST_#{what.to_s.upcase}"
29
- unless ENV.has_key?(key)
30
- warn "You haven't set the environment variable #{key}"
31
- exit(-1)
32
- end
33
- opts[what] = ENV[key]
19
+ key = "FASTLY_TEST_#{what.to_s.upcase}"
20
+ unless ENV.key?(key)
21
+ warn "You haven't set the environment variable #{key}"
22
+ exit(-1)
23
+ end
24
+ opts[what] = ENV[key]
34
25
  end
35
26
  opts
36
27
  end
37
28
 
38
- def get_rand
29
+ def random_string
39
30
  "#{Process.pid}-#{Time.now.to_i}-#{Kernel.rand(1000)}"
40
31
  end