azuki-api 0.0.2

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 (66) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -0
  3. data/.travis.yml +16 -0
  4. data/Gemfile +4 -0
  5. data/README.md +128 -0
  6. data/Rakefile +41 -0
  7. data/azuki-api.gemspec +23 -0
  8. data/changelog.txt +204 -0
  9. data/lib/azuki-api.rb +1 -0
  10. data/lib/azuki/api.rb +146 -0
  11. data/lib/azuki/api/addons.rb +48 -0
  12. data/lib/azuki/api/apps.rb +71 -0
  13. data/lib/azuki/api/attachments.rb +14 -0
  14. data/lib/azuki/api/collaborators.rb +33 -0
  15. data/lib/azuki/api/config_vars.rb +33 -0
  16. data/lib/azuki/api/domains.rb +42 -0
  17. data/lib/azuki/api/errors.rb +26 -0
  18. data/lib/azuki/api/features.rb +45 -0
  19. data/lib/azuki/api/keys.rb +42 -0
  20. data/lib/azuki/api/login.rb +14 -0
  21. data/lib/azuki/api/logs.rb +18 -0
  22. data/lib/azuki/api/mock.rb +179 -0
  23. data/lib/azuki/api/mock/addons.rb +153 -0
  24. data/lib/azuki/api/mock/apps.rb +205 -0
  25. data/lib/azuki/api/mock/attachments.rb +19 -0
  26. data/lib/azuki/api/mock/cache/get_addons.json +1 -0
  27. data/lib/azuki/api/mock/cache/get_features.json +1 -0
  28. data/lib/azuki/api/mock/cache/get_user.json +1 -0
  29. data/lib/azuki/api/mock/collaborators.rb +55 -0
  30. data/lib/azuki/api/mock/config_vars.rb +49 -0
  31. data/lib/azuki/api/mock/domains.rb +80 -0
  32. data/lib/azuki/api/mock/features.rb +120 -0
  33. data/lib/azuki/api/mock/keys.rb +46 -0
  34. data/lib/azuki/api/mock/login.rb +22 -0
  35. data/lib/azuki/api/mock/logs.rb +20 -0
  36. data/lib/azuki/api/mock/processes.rb +198 -0
  37. data/lib/azuki/api/mock/releases.rb +69 -0
  38. data/lib/azuki/api/mock/stacks.rb +83 -0
  39. data/lib/azuki/api/mock/user.rb +16 -0
  40. data/lib/azuki/api/processes.rb +77 -0
  41. data/lib/azuki/api/releases.rb +33 -0
  42. data/lib/azuki/api/ssl_endpoints.rb +62 -0
  43. data/lib/azuki/api/stacks.rb +22 -0
  44. data/lib/azuki/api/user.rb +14 -0
  45. data/lib/azuki/api/vendor/okjson.rb +600 -0
  46. data/lib/azuki/api/version.rb +5 -0
  47. data/test/data/site.crt +19 -0
  48. data/test/data/site.key +27 -0
  49. data/test/test_addons.rb +193 -0
  50. data/test/test_apps.rb +147 -0
  51. data/test/test_attachments.rb +23 -0
  52. data/test/test_collaborators.rb +73 -0
  53. data/test/test_config_vars.rb +54 -0
  54. data/test/test_domains.rb +65 -0
  55. data/test/test_error_conditions.rb +11 -0
  56. data/test/test_features.rb +87 -0
  57. data/test/test_helper.rb +48 -0
  58. data/test/test_keys.rb +39 -0
  59. data/test/test_login.rb +20 -0
  60. data/test/test_logs.rb +29 -0
  61. data/test/test_processes.rb +245 -0
  62. data/test/test_releases.rb +73 -0
  63. data/test/test_ssl_endpoints.rb +132 -0
  64. data/test/test_stacks.rb +49 -0
  65. data/test/test_user.rb +13 -0
  66. metadata +168 -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 = azuki.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(Azuki::API::Errors::NotFound) do
16
+ azuki.get_releases(random_name)
17
+ end
18
+ end
19
+
20
+ def test_get_release
21
+ with_app do |app_data|
22
+ current = azuki.get_releases(app_data['name']).body.last['name']
23
+ response = azuki.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 = azuki.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(Azuki::API::Errors::NotFound) do
41
+ azuki.get_release(random_name, 'v2')
42
+ end
43
+ end
44
+
45
+ def test_get_release_release_not_found
46
+ assert_raises(Azuki::API::Errors::NotFound) do
47
+ azuki.get_release(random_name, 'v0')
48
+ end
49
+ end
50
+
51
+ def test_post_release
52
+ with_app do |app_data|
53
+ current = azuki.get_releases(app_data['name']).body.last['name']
54
+ response = azuki.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(Azuki::API::Errors::NotFound) do
63
+ azuki.post_release(random_name, 'v3')
64
+ end
65
+ end
66
+
67
+ def test_post_release_release_not_found
68
+ assert_raises(Azuki::API::Errors::NotFound) do
69
+ azuki.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
+ azuki.post_addon(app_data['name'], 'ssl:endpoint')
9
+ ssl_endpoint_data = azuki.post_ssl_endpoint(app_data['name'], data_site_crt, data_site_key).body
10
+
11
+ response = azuki.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=Azuki/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=Azuki/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(Azuki::API::Errors::NotFound) do
28
+ azuki.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
+ azuki.post_addon(app_data['name'], 'ssl:endpoint')
36
+ ssl_endpoint_data = azuki.post_ssl_endpoint(app_data['name'], data_site_crt, data_site_key).body
37
+
38
+ response = azuki.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=Azuki/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=Azuki/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
+ azuki.post_addon(app_data['name'], 'ssl:endpoint')
56
+ azuki.post_ssl_endpoint(app_data['name'], data_site_crt, data_site_key)
57
+
58
+ response = azuki.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=Azuki/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=Azuki/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
+ azuki.post_addon(app_data['name'], 'ssl:endpoint')
76
+
77
+ response = azuki.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=Azuki/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=Azuki/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
+ azuki.post_addon(app_data['name'], 'ssl:endpoint')
95
+ ssl_endpoint_data = azuki.post_ssl_endpoint(app_data['name'], data_site_crt, data_site_key).body
96
+ azuki.put_ssl_endpoint(app_data['name'], ssl_endpoint_data['cname'], data_site_crt, data_site_key)
97
+
98
+ response = azuki.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=Azuki/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=Azuki/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
+ azuki.post_addon(app_data['name'], 'ssl:endpoint')
116
+ ssl_endpoint_data = azuki.post_ssl_endpoint(app_data['name'], data_site_crt, data_site_key).body
117
+
118
+ response = azuki.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=Azuki/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=Azuki/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 = azuki.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(Azuki::API::Errors::NotFound) do
15
+ azuki.get_stack(random_name)
16
+ end
17
+ end
18
+
19
+ def test_put_stack
20
+ with_app do |app_data|
21
+ response = azuki.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(Azuki::API::Errors::NotFound) do
29
+ azuki.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(Azuki::API::Errors::NotFound) do
36
+ azuki.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(Azuki::API::Errors::RequestFailed) do
44
+ azuki.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 = azuki.get_user
7
+ data = File.read("#{File.dirname(__FILE__)}/../lib/azuki/api/mock/cache/get_user.json")
8
+
9
+ assert_equal(200, response.status)
10
+ assert_equal(Azuki::API::OkJson.decode(data), response.body)
11
+ end
12
+
13
+ end
metadata ADDED
@@ -0,0 +1,168 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: azuki-api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Éverton Ribeiro
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-05-23 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: excon
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 0.20.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 0.20.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: Ruby Client for the Azuki API
56
+ email:
57
+ - everton@azukiapp.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - .gitignore
63
+ - .travis.yml
64
+ - Gemfile
65
+ - README.md
66
+ - Rakefile
67
+ - azuki-api.gemspec
68
+ - changelog.txt
69
+ - lib/azuki-api.rb
70
+ - lib/azuki/api.rb
71
+ - lib/azuki/api/addons.rb
72
+ - lib/azuki/api/apps.rb
73
+ - lib/azuki/api/attachments.rb
74
+ - lib/azuki/api/collaborators.rb
75
+ - lib/azuki/api/config_vars.rb
76
+ - lib/azuki/api/domains.rb
77
+ - lib/azuki/api/errors.rb
78
+ - lib/azuki/api/features.rb
79
+ - lib/azuki/api/keys.rb
80
+ - lib/azuki/api/login.rb
81
+ - lib/azuki/api/logs.rb
82
+ - lib/azuki/api/mock.rb
83
+ - lib/azuki/api/mock/addons.rb
84
+ - lib/azuki/api/mock/apps.rb
85
+ - lib/azuki/api/mock/attachments.rb
86
+ - lib/azuki/api/mock/cache/get_addons.json
87
+ - lib/azuki/api/mock/cache/get_features.json
88
+ - lib/azuki/api/mock/cache/get_user.json
89
+ - lib/azuki/api/mock/collaborators.rb
90
+ - lib/azuki/api/mock/config_vars.rb
91
+ - lib/azuki/api/mock/domains.rb
92
+ - lib/azuki/api/mock/features.rb
93
+ - lib/azuki/api/mock/keys.rb
94
+ - lib/azuki/api/mock/login.rb
95
+ - lib/azuki/api/mock/logs.rb
96
+ - lib/azuki/api/mock/processes.rb
97
+ - lib/azuki/api/mock/releases.rb
98
+ - lib/azuki/api/mock/stacks.rb
99
+ - lib/azuki/api/mock/user.rb
100
+ - lib/azuki/api/processes.rb
101
+ - lib/azuki/api/releases.rb
102
+ - lib/azuki/api/ssl_endpoints.rb
103
+ - lib/azuki/api/stacks.rb
104
+ - lib/azuki/api/user.rb
105
+ - lib/azuki/api/vendor/okjson.rb
106
+ - lib/azuki/api/version.rb
107
+ - test/data/site.crt
108
+ - test/data/site.key
109
+ - test/test_addons.rb
110
+ - test/test_apps.rb
111
+ - test/test_attachments.rb
112
+ - test/test_collaborators.rb
113
+ - test/test_config_vars.rb
114
+ - test/test_domains.rb
115
+ - test/test_error_conditions.rb
116
+ - test/test_features.rb
117
+ - test/test_helper.rb
118
+ - test/test_keys.rb
119
+ - test/test_login.rb
120
+ - test/test_logs.rb
121
+ - test/test_processes.rb
122
+ - test/test_releases.rb
123
+ - test/test_ssl_endpoints.rb
124
+ - test/test_stacks.rb
125
+ - test/test_user.rb
126
+ homepage: https://github.com/azukiapp/azuki-api-ruby
127
+ licenses: []
128
+ metadata: {}
129
+ post_install_message:
130
+ rdoc_options: []
131
+ require_paths:
132
+ - lib
133
+ required_ruby_version: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - '>='
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ required_rubygems_version: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ requirements: []
144
+ rubyforge_project:
145
+ rubygems_version: 2.0.3
146
+ signing_key:
147
+ specification_version: 4
148
+ summary: Ruby Client for the Azuki API
149
+ test_files:
150
+ - test/data/site.crt
151
+ - test/data/site.key
152
+ - test/test_addons.rb
153
+ - test/test_apps.rb
154
+ - test/test_attachments.rb
155
+ - test/test_collaborators.rb
156
+ - test/test_config_vars.rb
157
+ - test/test_domains.rb
158
+ - test/test_error_conditions.rb
159
+ - test/test_features.rb
160
+ - test/test_helper.rb
161
+ - test/test_keys.rb
162
+ - test/test_login.rb
163
+ - test/test_logs.rb
164
+ - test/test_processes.rb
165
+ - test/test_releases.rb
166
+ - test/test_ssl_endpoints.rb
167
+ - test/test_stacks.rb
168
+ - test/test_user.rb