fastly 1.1.4 → 1.1.5

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.
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