datacatalog 0.2.4 → 0.3.0

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.
@@ -1,4 +1,4 @@
1
- --color
2
- --timeout
3
- 20
4
- --diff
1
+ --color
2
+ --timeout
3
+ 20
4
+ --diff
@@ -1,278 +1,278 @@
1
- require File.dirname(__FILE__) + '/spec_helper'
2
- include DataCatalog
3
-
4
- module UserHelpers
5
- def create_user
6
- User.create({
7
- :name => "Ted Smith",
8
- :email => "ted@email.com"
9
- })
10
- end
11
-
12
- def create_user_with_2_keys
13
- user = create_user
14
- result = user.generate_api_key!(
15
- :purpose => "Civic hacking with my awesome app",
16
- :key_type => "application"
17
- )
18
- raise "generate_api_key! failed" unless result
19
- raise "incorrect number of keys" unless user.api_keys.length == 2
20
- user
21
- end
22
-
23
- def create_3_users
24
- 3.times do |n|
25
- User.create(
26
- :name => "User-#{n}",
27
- :email => "user_#{n}@email.com"
28
- )
29
- end
30
- end
31
- end
32
-
33
- describe User do
34
- include UserHelpers
35
-
36
- before do
37
- setup_api
38
- clean_slate
39
- end
40
-
41
- describe ".all" do
42
- before do
43
- create_3_users
44
- @users = User.all
45
- end
46
-
47
- it "should return an enumeration of users" do
48
- @users.each do |u|
49
- u.should be_an_instance_of(User)
50
- end
51
- end
52
-
53
- it "should include four users" do
54
- names = @users.map(&:name)
55
- names.should include("User-0")
56
- names.should include("User-1")
57
- names.should include("User-2")
58
- end
59
- end
60
-
61
- describe ".create" do
62
- before do
63
- @user = create_user
64
- end
65
-
66
- it "should create a new user when valid params are passed in" do
67
- @user.should be_an_instance_of(User)
68
- @user.name.should == "Ted Smith"
69
- @user.email.should == "ted@email.com"
70
- end
71
-
72
- it "should raise BadRequest when invalid params are passed in" do
73
- executing do
74
- User.create({ :garbage_field => "junk" })
75
- end.should raise_error(BadRequest)
76
- end
77
- end
78
-
79
- describe ".first" do
80
- before do
81
- create_3_users
82
- end
83
-
84
- it "should return a user" do
85
- user = User.first(:name => "User-1")
86
- user.should be_an_instance_of(User)
87
- user.name.should == "User-1"
88
- end
89
-
90
- it "should return nil if nothing found" do
91
- user = User.first(:name => "Elvis")
92
- user.should be_nil
93
- end
94
- end
95
-
96
- describe ".get_by_api_key" do
97
- before do
98
- @user = create_user
99
- end
100
-
101
- it "should return a user" do
102
- user = User.get_by_api_key(@user.primary_api_key)
103
- user.should be_an_instance_of(User)
104
- user.email.should == "ted@email.com"
105
- end
106
- end
107
-
108
- describe ".get" do
109
- before do
110
- @user = create_user_with_2_keys
111
- end
112
-
113
- describe "user exists" do
114
- before do
115
- @u = User.get(@user.id)
116
- end
117
-
118
- it "should return a user" do
119
- @u.should be_an_instance_of(User)
120
- @u.name.should == "Ted Smith"
121
- @u.email.should == "ted@email.com"
122
- end
123
-
124
- it "should include 2 api_keys" do
125
- keys = @u.api_keys
126
- keys.map(&:key_type).should == %w(primary application)
127
- keys.each do |key|
128
- key.should be_an_instance_of(ApiKey)
129
- end
130
- end
131
- end
132
-
133
- it "should raise NotFound if no user exists" do
134
- executing do
135
- User.get(mangle(@user.id))
136
- end.should raise_error(NotFound)
137
- end
138
- end
139
-
140
- describe ".get_by_api_key" do
141
- before do
142
- @user = create_user_with_2_keys
143
- end
144
-
145
- describe "API key exists" do
146
- before do
147
- @u = User.get_by_api_key(@user.primary_api_key)
148
- end
149
-
150
- it "should return a user" do
151
- @u.should be_an_instance_of(User)
152
- @u.name.should == "Ted Smith"
153
- @u.email.should == "ted@email.com"
154
- end
155
-
156
- it "should include 2 api_keys" do
157
- keys = @u.api_keys
158
- keys.map(&:key_type).should == %w(primary application)
159
- keys.each do |key|
160
- key.should be_an_instance_of(ApiKey)
161
- end
162
- end
163
- end
164
-
165
- it "should raise NotFound if API key does not exist" do
166
- executing do
167
- User.get_by_api_key(mangle(@user.primary_api_key))
168
- end.should raise_error(NotFound)
169
- end
170
- end
171
-
172
- describe ".update" do
173
- before do
174
- @user = create_user
175
- end
176
-
177
- it "should update a user when valid params are passed in" do
178
- user = User.update(@user.id, { :name => "Jane Smith" })
179
- user.name.should == "Jane Smith"
180
- end
181
-
182
- it "should raise BadRequest when invalid params are passed in" do
183
- executing do
184
- User.update(@user.id, { :garbage => "junk" })
185
- end.should raise_error(BadRequest)
186
- end
187
- end
188
-
189
- describe ".destroy" do
190
- before do
191
- @user = create_user
192
- end
193
-
194
- it "should destroy an existing user" do
195
- result = User.destroy(@user.id)
196
- result.should be_true
197
- end
198
-
199
- it "should raise NotFound when non-existing user" do
200
- executing do
201
- User.destroy(mangle(@user.id))
202
- end.should raise_error(NotFound)
203
- end
204
- end
205
-
206
- describe "#generate_api_key!" do
207
- before do
208
- @user = create_user
209
- end
210
-
211
- it "should generate a new key for the user" do
212
- @user.api_keys.length.should == 1
213
- @user.generate_api_key!({
214
- :purpose => "Civic hacking with my awesome app",
215
- :key_type => "application"
216
- }).should be_true
217
- @user.api_keys.length.should == 2
218
- @user.api_keys.last[:purpose].should == "Civic hacking with my awesome app"
219
- @user.application_api_keys.length.should == 1
220
- end
221
-
222
- it "should raise BadRequest when attempting to create a primary key" do
223
- executing do
224
- @user.generate_api_key!({
225
- :purpose => "Civic hacking with my awesome app",
226
- :key_type => "primary"
227
- })
228
- end.should raise_error(BadRequest)
229
- end
230
- end
231
-
232
- describe "#update_api_key!" do
233
- before do
234
- @user = create_user_with_2_keys
235
- end
236
-
237
- it "should update a key for the user" do
238
- @user.update_api_key!(@user.api_keys[1].id, {
239
- :key_type => "valet",
240
- :purpose => "To be more awesome"
241
- }).should be_true
242
- @user.api_keys[1].purpose.should == "To be more awesome"
243
- end
244
-
245
- it "should raise NotFound if updating a key that doesn't exist" do
246
- executing do
247
- @user.update_api_key!(mangle(@user.api_keys[1].id), {})
248
- end.should raise_error(NotFound)
249
- end
250
-
251
- it "should raise BadRequest if primary key's type is changed" do
252
- executing do
253
- @user.update_api_key!(@user.api_keys[0].id, {
254
- :key_type => "valet"
255
- })
256
- end.should raise_error(BadRequest)
257
- end
258
- end
259
-
260
- describe "#delete_api_key!" do
261
- before do
262
- @user = create_user_with_2_keys
263
- end
264
-
265
- it "should delete a key for the user" do
266
- @user.delete_api_key!(@user.api_keys[1].id).should be_true
267
- @user.api_keys.length.should == 1
268
- end
269
-
270
- it "should raise Conflict if deleting the primary key" do
271
- executing do
272
- @user.delete_api_key!(@user.api_keys[0].id)
273
- end.should raise_error(Conflict)
274
- @user.api_keys.length.should == 2
275
- end
276
- end
277
-
278
- end
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+ include DataCatalog
3
+
4
+ module UserHelpers
5
+ def create_user
6
+ User.create({
7
+ :name => "Ted Smith",
8
+ :email => "ted@email.com"
9
+ })
10
+ end
11
+
12
+ def create_user_with_2_keys
13
+ user = create_user
14
+ result = user.generate_api_key!(
15
+ :purpose => "Civic hacking with my awesome app",
16
+ :key_type => "application"
17
+ )
18
+ raise "generate_api_key! failed" unless result
19
+ raise "incorrect number of keys" unless user.api_keys.length == 2
20
+ user
21
+ end
22
+
23
+ def create_3_users
24
+ 3.times do |n|
25
+ User.create(
26
+ :name => "User-#{n}",
27
+ :email => "user_#{n}@email.com"
28
+ )
29
+ end
30
+ end
31
+ end
32
+
33
+ describe User do
34
+ include UserHelpers
35
+
36
+ before do
37
+ setup_api
38
+ clean_slate
39
+ end
40
+
41
+ describe ".all" do
42
+ before do
43
+ create_3_users
44
+ @users = User.all
45
+ end
46
+
47
+ it "should return an enumeration of users" do
48
+ @users.each do |u|
49
+ u.should be_an_instance_of(User)
50
+ end
51
+ end
52
+
53
+ it "should include four users" do
54
+ names = @users.map(&:name)
55
+ names.should include("User-0")
56
+ names.should include("User-1")
57
+ names.should include("User-2")
58
+ end
59
+ end
60
+
61
+ describe ".create" do
62
+ before do
63
+ @user = create_user
64
+ end
65
+
66
+ it "should create a new user when valid params are passed in" do
67
+ @user.should be_an_instance_of(User)
68
+ @user.name.should == "Ted Smith"
69
+ @user.email.should == "ted@email.com"
70
+ end
71
+
72
+ it "should raise BadRequest when invalid params are passed in" do
73
+ executing do
74
+ User.create({ :garbage_field => "junk" })
75
+ end.should raise_error(BadRequest)
76
+ end
77
+ end
78
+
79
+ describe ".first" do
80
+ before do
81
+ create_3_users
82
+ end
83
+
84
+ it "should return a user" do
85
+ user = User.first(:name => "User-1")
86
+ user.should be_an_instance_of(User)
87
+ user.name.should == "User-1"
88
+ end
89
+
90
+ it "should return nil if nothing found" do
91
+ user = User.first(:name => "Elvis")
92
+ user.should be_nil
93
+ end
94
+ end
95
+
96
+ describe ".get_by_api_key" do
97
+ before do
98
+ @user = create_user
99
+ end
100
+
101
+ it "should return a user" do
102
+ user = User.get_by_api_key(@user.primary_api_key)
103
+ user.should be_an_instance_of(User)
104
+ user.email.should == "ted@email.com"
105
+ end
106
+ end
107
+
108
+ describe ".get" do
109
+ before do
110
+ @user = create_user_with_2_keys
111
+ end
112
+
113
+ describe "user exists" do
114
+ before do
115
+ @u = User.get(@user.id)
116
+ end
117
+
118
+ it "should return a user" do
119
+ @u.should be_an_instance_of(User)
120
+ @u.name.should == "Ted Smith"
121
+ @u.email.should == "ted@email.com"
122
+ end
123
+
124
+ it "should include 2 api_keys" do
125
+ keys = @u.api_keys
126
+ keys.map(&:key_type).should == %w(primary application)
127
+ keys.each do |key|
128
+ key.should be_an_instance_of(ApiKey)
129
+ end
130
+ end
131
+ end
132
+
133
+ it "should raise NotFound if no user exists" do
134
+ executing do
135
+ User.get(mangle(@user.id))
136
+ end.should raise_error(NotFound)
137
+ end
138
+ end
139
+
140
+ describe ".get_by_api_key" do
141
+ before do
142
+ @user = create_user_with_2_keys
143
+ end
144
+
145
+ describe "API key exists" do
146
+ before do
147
+ @u = User.get_by_api_key(@user.primary_api_key)
148
+ end
149
+
150
+ it "should return a user" do
151
+ @u.should be_an_instance_of(User)
152
+ @u.name.should == "Ted Smith"
153
+ @u.email.should == "ted@email.com"
154
+ end
155
+
156
+ it "should include 2 api_keys" do
157
+ keys = @u.api_keys
158
+ keys.map(&:key_type).should == %w(primary application)
159
+ keys.each do |key|
160
+ key.should be_an_instance_of(ApiKey)
161
+ end
162
+ end
163
+ end
164
+
165
+ it "should raise NotFound if API key does not exist" do
166
+ executing do
167
+ User.get_by_api_key(mangle(@user.primary_api_key))
168
+ end.should raise_error(NotFound)
169
+ end
170
+ end
171
+
172
+ describe ".update" do
173
+ before do
174
+ @user = create_user
175
+ end
176
+
177
+ it "should update a user when valid params are passed in" do
178
+ user = User.update(@user.id, { :name => "Jane Smith" })
179
+ user.name.should == "Jane Smith"
180
+ end
181
+
182
+ it "should raise BadRequest when invalid params are passed in" do
183
+ executing do
184
+ User.update(@user.id, { :garbage => "junk" })
185
+ end.should raise_error(BadRequest)
186
+ end
187
+ end
188
+
189
+ describe ".destroy" do
190
+ before do
191
+ @user = create_user
192
+ end
193
+
194
+ it "should destroy an existing user" do
195
+ result = User.destroy(@user.id)
196
+ result.should be_true
197
+ end
198
+
199
+ it "should raise NotFound when non-existing user" do
200
+ executing do
201
+ User.destroy(mangle(@user.id))
202
+ end.should raise_error(NotFound)
203
+ end
204
+ end
205
+
206
+ describe "#generate_api_key!" do
207
+ before do
208
+ @user = create_user
209
+ end
210
+
211
+ it "should generate a new key for the user" do
212
+ @user.api_keys.length.should == 1
213
+ @user.generate_api_key!({
214
+ :purpose => "Civic hacking with my awesome app",
215
+ :key_type => "application"
216
+ }).should be_true
217
+ @user.api_keys.length.should == 2
218
+ @user.api_keys.last[:purpose].should == "Civic hacking with my awesome app"
219
+ @user.application_api_keys.length.should == 1
220
+ end
221
+
222
+ it "should raise BadRequest when attempting to create a primary key" do
223
+ executing do
224
+ @user.generate_api_key!({
225
+ :purpose => "Civic hacking with my awesome app",
226
+ :key_type => "primary"
227
+ })
228
+ end.should raise_error(BadRequest)
229
+ end
230
+ end
231
+
232
+ describe "#update_api_key!" do
233
+ before do
234
+ @user = create_user_with_2_keys
235
+ end
236
+
237
+ it "should update a key for the user" do
238
+ @user.update_api_key!(@user.api_keys[1].id, {
239
+ :key_type => "valet",
240
+ :purpose => "To be more awesome"
241
+ }).should be_true
242
+ @user.api_keys[1].purpose.should == "To be more awesome"
243
+ end
244
+
245
+ it "should raise NotFound if updating a key that doesn't exist" do
246
+ executing do
247
+ @user.update_api_key!(mangle(@user.api_keys[1].id), {})
248
+ end.should raise_error(NotFound)
249
+ end
250
+
251
+ it "should raise BadRequest if primary key's type is changed" do
252
+ executing do
253
+ @user.update_api_key!(@user.api_keys[0].id, {
254
+ :key_type => "valet"
255
+ })
256
+ end.should raise_error(BadRequest)
257
+ end
258
+ end
259
+
260
+ describe "#delete_api_key!" do
261
+ before do
262
+ @user = create_user_with_2_keys
263
+ end
264
+
265
+ it "should delete a key for the user" do
266
+ @user.delete_api_key!(@user.api_keys[1].id).should be_true
267
+ @user.api_keys.length.should == 1
268
+ end
269
+
270
+ it "should raise Conflict if deleting the primary key" do
271
+ executing do
272
+ @user.delete_api_key!(@user.api_keys[0].id)
273
+ end.should raise_error(Conflict)
274
+ @user.api_keys.length.should == 2
275
+ end
276
+ end
277
+
278
+ end