pogoapp-api 0.3.8

Sign up to get free protection for your applications and to get access to all the features.
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