pogoapp-api 0.3.8

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.
Files changed (65) hide show
  1. data/.gitignore +4 -0
  2. data/.travis.yml +16 -0
  3. data/Gemfile +4 -0
  4. data/README.md +128 -0
  5. data/Rakefile +41 -0
  6. data/changelog.txt +204 -0
  7. data/lib/heroku-api.rb +1 -0
  8. data/lib/heroku/api.rb +147 -0
  9. data/lib/heroku/api/addons.rb +48 -0
  10. data/lib/heroku/api/apps.rb +71 -0
  11. data/lib/heroku/api/attachments.rb +14 -0
  12. data/lib/heroku/api/collaborators.rb +33 -0
  13. data/lib/heroku/api/config_vars.rb +33 -0
  14. data/lib/heroku/api/domains.rb +42 -0
  15. data/lib/heroku/api/errors.rb +26 -0
  16. data/lib/heroku/api/features.rb +45 -0
  17. data/lib/heroku/api/keys.rb +42 -0
  18. data/lib/heroku/api/login.rb +14 -0
  19. data/lib/heroku/api/logs.rb +18 -0
  20. data/lib/heroku/api/mock.rb +179 -0
  21. data/lib/heroku/api/mock/addons.rb +153 -0
  22. data/lib/heroku/api/mock/apps.rb +205 -0
  23. data/lib/heroku/api/mock/attachments.rb +19 -0
  24. data/lib/heroku/api/mock/cache/get_addons.json +1 -0
  25. data/lib/heroku/api/mock/cache/get_features.json +1 -0
  26. data/lib/heroku/api/mock/cache/get_user.json +1 -0
  27. data/lib/heroku/api/mock/collaborators.rb +55 -0
  28. data/lib/heroku/api/mock/config_vars.rb +49 -0
  29. data/lib/heroku/api/mock/domains.rb +80 -0
  30. data/lib/heroku/api/mock/features.rb +120 -0
  31. data/lib/heroku/api/mock/keys.rb +46 -0
  32. data/lib/heroku/api/mock/login.rb +22 -0
  33. data/lib/heroku/api/mock/logs.rb +20 -0
  34. data/lib/heroku/api/mock/processes.rb +198 -0
  35. data/lib/heroku/api/mock/releases.rb +69 -0
  36. data/lib/heroku/api/mock/stacks.rb +83 -0
  37. data/lib/heroku/api/mock/user.rb +16 -0
  38. data/lib/heroku/api/processes.rb +77 -0
  39. data/lib/heroku/api/releases.rb +33 -0
  40. data/lib/heroku/api/ssl_endpoints.rb +62 -0
  41. data/lib/heroku/api/stacks.rb +22 -0
  42. data/lib/heroku/api/user.rb +14 -0
  43. data/lib/heroku/api/vendor/okjson.rb +600 -0
  44. data/lib/heroku/api/version.rb +5 -0
  45. data/pogoapp-api.gemspec +23 -0
  46. data/test/data/site.crt +19 -0
  47. data/test/data/site.key +27 -0
  48. data/test/test_addons.rb +193 -0
  49. data/test/test_apps.rb +147 -0
  50. data/test/test_attachments.rb +23 -0
  51. data/test/test_collaborators.rb +73 -0
  52. data/test/test_config_vars.rb +54 -0
  53. data/test/test_domains.rb +65 -0
  54. data/test/test_error_conditions.rb +11 -0
  55. data/test/test_features.rb +87 -0
  56. data/test/test_helper.rb +48 -0
  57. data/test/test_keys.rb +39 -0
  58. data/test/test_login.rb +20 -0
  59. data/test/test_logs.rb +29 -0
  60. data/test/test_processes.rb +245 -0
  61. data/test/test_releases.rb +73 -0
  62. data/test/test_ssl_endpoints.rb +132 -0
  63. data/test/test_stacks.rb +49 -0
  64. data/test/test_user.rb +13 -0
  65. metadata +182 -0
@@ -0,0 +1,73 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/test_helper")
2
+
3
+ class TestReleases < MiniTest::Unit::TestCase
4
+
5
+ def test_get_releases
6
+ with_app do |app_data|
7
+ response = heroku.get_releases(app_data['name'])
8
+
9
+ assert_equal(200, response.status)
10
+ # body assertion?
11
+ end
12
+ end
13
+
14
+ def test_get_releases_app_not_found
15
+ assert_raises(Heroku::API::Errors::NotFound) do
16
+ heroku.get_releases(random_name)
17
+ end
18
+ end
19
+
20
+ def test_get_release
21
+ with_app do |app_data|
22
+ current = heroku.get_releases(app_data['name']).body.last['name']
23
+ response = heroku.get_release(app_data['name'], current)
24
+
25
+ assert_equal(200, response.status)
26
+ # body assertion?
27
+ end
28
+ end
29
+
30
+ def test_get_release_current
31
+ with_app do |app_data|
32
+ response = heroku.get_release(app_data['name'], 'current')
33
+
34
+ assert_equal(200, response.status)
35
+ # body assertion?
36
+ end
37
+ end
38
+
39
+ def test_get_release_app_not_found
40
+ assert_raises(Heroku::API::Errors::NotFound) do
41
+ heroku.get_release(random_name, 'v2')
42
+ end
43
+ end
44
+
45
+ def test_get_release_release_not_found
46
+ assert_raises(Heroku::API::Errors::NotFound) do
47
+ heroku.get_release(random_name, 'v0')
48
+ end
49
+ end
50
+
51
+ def test_post_release
52
+ with_app do |app_data|
53
+ current = heroku.get_releases(app_data['name']).body.last['name']
54
+ response = heroku.post_release(app_data['name'], current)
55
+
56
+ assert_equal(200, response.status)
57
+ # body assertion?
58
+ end
59
+ end
60
+
61
+ def test_post_release_app_not_found
62
+ assert_raises(Heroku::API::Errors::NotFound) do
63
+ heroku.post_release(random_name, 'v3')
64
+ end
65
+ end
66
+
67
+ def test_post_release_release_not_found
68
+ assert_raises(Heroku::API::Errors::NotFound) do
69
+ heroku.post_release(random_name, 'v0')
70
+ end
71
+ end
72
+
73
+ end
@@ -0,0 +1,132 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/test_helper")
2
+
3
+ class TestSslEndpoints < MiniTest::Unit::TestCase
4
+
5
+ def test_delete_ssl_endpoint
6
+ skip if MOCK
7
+ with_app do |app_data|
8
+ heroku.post_addon(app_data['name'], 'ssl:endpoint')
9
+ ssl_endpoint_data = heroku.post_ssl_endpoint(app_data['name'], data_site_crt, data_site_key).body
10
+
11
+ response = heroku.delete_ssl_endpoint(app_data['name'], ssl_endpoint_data['cname'])
12
+
13
+ data = response.body['ssl_cert']
14
+ assert_equal(false, data['ca_signed?'])
15
+ assert_equal(true, data['self_signed?'])
16
+ assert_equal(['example.com'], data['cert_domains'])
17
+ assert_equal('2013/08/01 15:32:09 -0700', data['expires_at'])
18
+ assert_equal('/C=US/ST=CA/O=Heroku/CN=example.com', data['issuer'])
19
+ assert_equal('2012/08/01 15:32:09 -0700', data['starts_at'])
20
+ assert_equal('/C=US/ST=CA/O=Heroku/CN=example.com', data['subject'])
21
+ assert_equal(200, response.status)
22
+ end
23
+ end
24
+
25
+ def test_delete_ssl_endpoint_app_not_found
26
+ skip if MOCK
27
+ assert_raises(Heroku::API::Errors::NotFound) do
28
+ heroku.delete_ssl_endpoint(random_name, 'key')
29
+ end
30
+ end
31
+
32
+ def test_get_ssl_endpoint
33
+ skip if MOCK
34
+ with_app do |app_data|
35
+ heroku.post_addon(app_data['name'], 'ssl:endpoint')
36
+ ssl_endpoint_data = heroku.post_ssl_endpoint(app_data['name'], data_site_crt, data_site_key).body
37
+
38
+ response = heroku.get_ssl_endpoint(app_data['name'], ssl_endpoint_data['cname'])
39
+
40
+ data = response.body['ssl_cert']
41
+ assert_equal(false, data['ca_signed?'])
42
+ assert_equal(true, data['self_signed?'])
43
+ assert_equal(['example.com'], data['cert_domains'])
44
+ assert_equal('2013/08/01 15:32:09 -0700', data['expires_at'])
45
+ assert_equal('/C=US/ST=CA/O=Heroku/CN=example.com', data['issuer'])
46
+ assert_equal('2012/08/01 15:32:09 -0700', data['starts_at'])
47
+ assert_equal('/C=US/ST=CA/O=Heroku/CN=example.com', data['subject'])
48
+ assert_equal(200, response.status)
49
+ end
50
+ end
51
+
52
+ def test_get_ssl_endpoints
53
+ skip if MOCK
54
+ with_app do |app_data|
55
+ heroku.post_addon(app_data['name'], 'ssl:endpoint')
56
+ heroku.post_ssl_endpoint(app_data['name'], data_site_crt, data_site_key)
57
+
58
+ response = heroku.get_ssl_endpoints(app_data['name'])
59
+
60
+ data = response.body.first['ssl_cert']
61
+ assert_equal(false, data['ca_signed?'])
62
+ assert_equal(true, data['self_signed?'])
63
+ assert_equal(['example.com'], data['cert_domains'])
64
+ assert_equal('2013/08/01 15:32:09 -0700', data['expires_at'])
65
+ assert_equal('/C=US/ST=CA/O=Heroku/CN=example.com', data['issuer'])
66
+ assert_equal('2012/08/01 15:32:09 -0700', data['starts_at'])
67
+ assert_equal('/C=US/ST=CA/O=Heroku/CN=example.com', data['subject'])
68
+ assert_equal(200, response.status)
69
+ end
70
+ end
71
+
72
+ def test_post_ssl_endpoint
73
+ skip if MOCK
74
+ with_app do |app_data|
75
+ heroku.post_addon(app_data['name'], 'ssl:endpoint')
76
+
77
+ response = heroku.post_ssl_endpoint(app_data['name'], data_site_crt, data_site_key)
78
+
79
+ data = response.body['ssl_cert']
80
+ assert_equal(false, data['ca_signed?'])
81
+ assert_equal(true, data['self_signed?'])
82
+ assert_equal(['example.com'], data['cert_domains'])
83
+ assert_equal('2013/08/01 15:32:09 -0700', data['expires_at'])
84
+ assert_equal('/C=US/ST=CA/O=Heroku/CN=example.com', data['issuer'])
85
+ assert_equal('2012/08/01 15:32:09 -0700', data['starts_at'])
86
+ assert_equal('/C=US/ST=CA/O=Heroku/CN=example.com', data['subject'])
87
+ assert_equal(200, response.status)
88
+ end
89
+ end
90
+
91
+ def test_post_ssl_endpoint_rollback
92
+ skip if MOCK
93
+ with_app do |app_data|
94
+ heroku.post_addon(app_data['name'], 'ssl:endpoint')
95
+ ssl_endpoint_data = heroku.post_ssl_endpoint(app_data['name'], data_site_crt, data_site_key).body
96
+ heroku.put_ssl_endpoint(app_data['name'], ssl_endpoint_data['cname'], data_site_crt, data_site_key)
97
+
98
+ response = heroku.post_ssl_endpoint_rollback(app_data['name'], ssl_endpoint_data['cname'])
99
+
100
+ data = response.body['ssl_cert']
101
+ assert_equal(false, data['ca_signed?'])
102
+ assert_equal(true, data['self_signed?'])
103
+ assert_equal(['example.com'], data['cert_domains'])
104
+ assert_equal('2013/08/01 15:32:09 -0700', data['expires_at'])
105
+ assert_equal('/C=US/ST=CA/O=Heroku/CN=example.com', data['issuer'])
106
+ assert_equal('2012/08/01 15:32:09 -0700', data['starts_at'])
107
+ assert_equal('/C=US/ST=CA/O=Heroku/CN=example.com', data['subject'])
108
+ assert_equal(200, response.status)
109
+ end
110
+ end
111
+
112
+ def test_put_ssl_endpoint
113
+ skip if MOCK
114
+ with_app do |app_data|
115
+ heroku.post_addon(app_data['name'], 'ssl:endpoint')
116
+ ssl_endpoint_data = heroku.post_ssl_endpoint(app_data['name'], data_site_crt, data_site_key).body
117
+
118
+ response = heroku.put_ssl_endpoint(app_data['name'], ssl_endpoint_data['cname'], data_site_crt, data_site_key)
119
+
120
+ data = response.body['ssl_cert']
121
+ assert_equal(false, data['ca_signed?'])
122
+ assert_equal(true, data['self_signed?'])
123
+ assert_equal(['example.com'], data['cert_domains'])
124
+ assert_equal('2013/08/01 15:32:09 -0700', data['expires_at'])
125
+ assert_equal('/C=US/ST=CA/O=Heroku/CN=example.com', data['issuer'])
126
+ assert_equal('2012/08/01 15:32:09 -0700', data['starts_at'])
127
+ assert_equal('/C=US/ST=CA/O=Heroku/CN=example.com', data['subject'])
128
+ assert_equal(200, response.status)
129
+ end
130
+ end
131
+
132
+ end
@@ -0,0 +1,49 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/test_helper")
2
+
3
+ class TestStacks < MiniTest::Unit::TestCase
4
+
5
+ def test_get_stack
6
+ with_app do |app_data|
7
+ response = heroku.get_stack(app_data['name'])
8
+
9
+ assert_equal(200, response.status)
10
+ end
11
+ end
12
+
13
+ def test_get_stack_app_not_found
14
+ assert_raises(Heroku::API::Errors::NotFound) do
15
+ heroku.get_stack(random_name)
16
+ end
17
+ end
18
+
19
+ def test_put_stack
20
+ with_app do |app_data|
21
+ response = heroku.put_stack(app_data['name'], 'bamboo-ree-1.8.7')
22
+
23
+ assert_equal(200, response.status)
24
+ end
25
+ end
26
+
27
+ def test_put_stack_app_not_found
28
+ assert_raises(Heroku::API::Errors::NotFound) do
29
+ heroku.put_stack(random_name, 'bamboo-ree-1.8.7')
30
+ end
31
+ end
32
+
33
+ def test_put_stack_stack_not_found
34
+ with_app do |app_data|
35
+ assert_raises(Heroku::API::Errors::NotFound) do
36
+ heroku.put_stack(app_data['name'], random_name)
37
+ end
38
+ end
39
+ end
40
+
41
+ def test_put_stack_cedar
42
+ with_app do |app_data|
43
+ assert_raises(Heroku::API::Errors::RequestFailed) do
44
+ heroku.put_stack(app_data['name'], 'cedar')
45
+ end
46
+ end
47
+ end
48
+
49
+ end
@@ -0,0 +1,13 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/test_helper")
2
+
3
+ class TestUser < MiniTest::Unit::TestCase
4
+
5
+ def test_get_user
6
+ response = heroku.get_user
7
+ data = File.read("#{File.dirname(__FILE__)}/../lib/heroku/api/mock/cache/get_user.json")
8
+
9
+ assert_equal(200, response.status)
10
+ assert_equal(Heroku::API::OkJson.decode(data), response.body)
11
+ end
12
+
13
+ end
metadata ADDED
@@ -0,0 +1,182 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pogoapp-api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.8
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - geemus (Wesley Beary)
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-05-01 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: excon
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 0.20.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 0.20.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: minitest
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rake
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ description: Ruby Client for the Pogoapp API
63
+ email:
64
+ - wesley@heroku.com
65
+ executables: []
66
+ extensions: []
67
+ extra_rdoc_files: []
68
+ files:
69
+ - .gitignore
70
+ - .travis.yml
71
+ - Gemfile
72
+ - README.md
73
+ - Rakefile
74
+ - changelog.txt
75
+ - lib/heroku-api.rb
76
+ - lib/heroku/api.rb
77
+ - lib/heroku/api/addons.rb
78
+ - lib/heroku/api/apps.rb
79
+ - lib/heroku/api/attachments.rb
80
+ - lib/heroku/api/collaborators.rb
81
+ - lib/heroku/api/config_vars.rb
82
+ - lib/heroku/api/domains.rb
83
+ - lib/heroku/api/errors.rb
84
+ - lib/heroku/api/features.rb
85
+ - lib/heroku/api/keys.rb
86
+ - lib/heroku/api/login.rb
87
+ - lib/heroku/api/logs.rb
88
+ - lib/heroku/api/mock.rb
89
+ - lib/heroku/api/mock/addons.rb
90
+ - lib/heroku/api/mock/apps.rb
91
+ - lib/heroku/api/mock/attachments.rb
92
+ - lib/heroku/api/mock/cache/get_addons.json
93
+ - lib/heroku/api/mock/cache/get_features.json
94
+ - lib/heroku/api/mock/cache/get_user.json
95
+ - lib/heroku/api/mock/collaborators.rb
96
+ - lib/heroku/api/mock/config_vars.rb
97
+ - lib/heroku/api/mock/domains.rb
98
+ - lib/heroku/api/mock/features.rb
99
+ - lib/heroku/api/mock/keys.rb
100
+ - lib/heroku/api/mock/login.rb
101
+ - lib/heroku/api/mock/logs.rb
102
+ - lib/heroku/api/mock/processes.rb
103
+ - lib/heroku/api/mock/releases.rb
104
+ - lib/heroku/api/mock/stacks.rb
105
+ - lib/heroku/api/mock/user.rb
106
+ - lib/heroku/api/processes.rb
107
+ - lib/heroku/api/releases.rb
108
+ - lib/heroku/api/ssl_endpoints.rb
109
+ - lib/heroku/api/stacks.rb
110
+ - lib/heroku/api/user.rb
111
+ - lib/heroku/api/vendor/okjson.rb
112
+ - lib/heroku/api/version.rb
113
+ - pogoapp-api.gemspec
114
+ - test/data/site.crt
115
+ - test/data/site.key
116
+ - test/test_addons.rb
117
+ - test/test_apps.rb
118
+ - test/test_attachments.rb
119
+ - test/test_collaborators.rb
120
+ - test/test_config_vars.rb
121
+ - test/test_domains.rb
122
+ - test/test_error_conditions.rb
123
+ - test/test_features.rb
124
+ - test/test_helper.rb
125
+ - test/test_keys.rb
126
+ - test/test_login.rb
127
+ - test/test_logs.rb
128
+ - test/test_processes.rb
129
+ - test/test_releases.rb
130
+ - test/test_ssl_endpoints.rb
131
+ - test/test_stacks.rb
132
+ - test/test_user.rb
133
+ homepage: http://github.com/pogoapp/pogoapp.rb
134
+ licenses: []
135
+ post_install_message:
136
+ rdoc_options: []
137
+ require_paths:
138
+ - lib
139
+ required_ruby_version: !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - ! '>='
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ segments:
146
+ - 0
147
+ hash: -4469187454013142088
148
+ required_rubygems_version: !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ segments:
155
+ - 0
156
+ hash: -4469187454013142088
157
+ requirements: []
158
+ rubyforge_project:
159
+ rubygems_version: 1.8.23
160
+ signing_key:
161
+ specification_version: 3
162
+ summary: Ruby Client for the Pogoapp API
163
+ test_files:
164
+ - test/data/site.crt
165
+ - test/data/site.key
166
+ - test/test_addons.rb
167
+ - test/test_apps.rb
168
+ - test/test_attachments.rb
169
+ - test/test_collaborators.rb
170
+ - test/test_config_vars.rb
171
+ - test/test_domains.rb
172
+ - test/test_error_conditions.rb
173
+ - test/test_features.rb
174
+ - test/test_helper.rb
175
+ - test/test_keys.rb
176
+ - test/test_login.rb
177
+ - test/test_logs.rb
178
+ - test/test_processes.rb
179
+ - test/test_releases.rb
180
+ - test/test_ssl_endpoints.rb
181
+ - test/test_stacks.rb
182
+ - test/test_user.rb