leanback 0.4.2 → 0.5.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.
Files changed (63) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +10 -0
  3. data/Gemfile +5 -6
  4. data/Gemfile.lock +65 -14
  5. data/README.md +465 -33
  6. data/Rakefile +8 -17
  7. data/VERSION +1 -1
  8. data/leanback.gemspec +26 -85
  9. data/lib/leanback.rb +129 -587
  10. data/spec/leanback_spec.rb +356 -0
  11. metadata +40 -117
  12. data/Changelog.rdoc +0 -146
  13. data/documentation/static/2011/11/20/i-moved-leanback-documentation/index.html +0 -180
  14. data/documentation/static/2011/11/20/index.html +0 -146
  15. data/documentation/static/2011/11/index.html +0 -146
  16. data/documentation/static/2011/index.html +0 -146
  17. data/documentation/static/2013/06/02/index.html +0 -146
  18. data/documentation/static/2013/06/02/released-leanback-v0-3-4/index.html +0 -180
  19. data/documentation/static/2013/06/09/index.html +0 -146
  20. data/documentation/static/2013/06/09/released-leanback-v0-4-0/index.html +0 -179
  21. data/documentation/static/2013/06/index.html +0 -158
  22. data/documentation/static/2013/index.html +0 -158
  23. data/documentation/static/author/admin/index.html +0 -175
  24. data/documentation/static/basic-couchdb-operations/index.html +0 -259
  25. data/documentation/static/category/uncategorized/index.html +0 -170
  26. data/documentation/static/couchdb-configuration/index.html +0 -189
  27. data/documentation/static/couchdb-security/index.html +0 -218
  28. data/documentation/static/count-by-multiple-documents/index.html +0 -221
  29. data/documentation/static/count-documents-by-key/index.html +0 -177
  30. data/documentation/static/css/2c-l-fixed.css +0 -1
  31. data/documentation/static/css/2c-l-fixed.dev.css +0 -62
  32. data/documentation/static/css/2c-r-fixed.css +0 -1
  33. data/documentation/static/css/2c-r-fixed.dev.css +0 -60
  34. data/documentation/static/css/3c-c-fixed.css +0 -1
  35. data/documentation/static/css/3c-c-fixed.dev.css +0 -84
  36. data/documentation/static/css/3c-l-fixed.css +0 -1
  37. data/documentation/static/css/3c-l-fixed.dev.css +0 -61
  38. data/documentation/static/css/3c-r-fixed.css +0 -1
  39. data/documentation/static/css/3c-r-fixed.dev.css +0 -62
  40. data/documentation/static/css/holy-grail-fluid.css +0 -5
  41. data/documentation/static/css/plugins.css +0 -5
  42. data/documentation/static/css/print.css +0 -5
  43. data/documentation/static/css/screen.css +0 -1
  44. data/documentation/static/design-documents-and-permanent-views/index.html +0 -454
  45. data/documentation/static/error-handling/index.html +0 -157
  46. data/documentation/static/find-document-by-multiple-keys/index.html +0 -269
  47. data/documentation/static/find-documents-by-key/index.html +0 -243
  48. data/documentation/static/index.html +0 -161
  49. data/documentation/static/leanback/index.html +0 -130
  50. data/documentation/static/leanback/installation/index.html +0 -119
  51. data/documentation/static/setting-the-bind_address-port/index.html +0 -151
  52. data/documentation/static/style.css +0 -16
  53. data/spec/admin_party/database_spec.rb +0 -400
  54. data/spec/no_admin_party/cloudant_spec.rb +0 -365
  55. data/spec/no_admin_party/database_spec.rb +0 -491
  56. data/spec/no_admin_party/non_admin_user_spec.rb +0 -67
  57. data/test/helper.rb +0 -18
  58. data/test/main.rb +0 -295
  59. data/test/my_view.json +0 -8
  60. data/test/my_views.json +0 -8
  61. data/test/start.json +0 -8
  62. data/test/test_leanback.rb +0 -319
  63. data/test/view_age.json +0 -8
@@ -1,67 +0,0 @@
1
- require 'spec_base.rb'
2
-
3
- hash = Couchdb.login(username = 'obi',password ='trusted')
4
- @@admin_auth_session = hash["AuthSession"]
5
-
6
- user = { :username => "david", :password => "trusted", :roles => []}
7
- Couchdb.add_user(user, @@admin_auth_session)
8
-
9
- #a day in the life of the non-admin user
10
- hash = Couchdb.login(username = 'david',password ='trusted')
11
- @@auth_session = hash["AuthSession"]
12
-
13
- #specs to ensure non-admin users function properly
14
- describe "non admin user" do
15
- it "should create a document, view, update it" do
16
- Couchdb.create('contacts',@@admin_auth_session)
17
-
18
- data = {:firstname => 'Nancy', :lastname =>'Lee', :phone => '347-808-3734',:email =>'nancy@mail.com',:gender => 'female'}
19
- doc = {:database => 'contacts', :doc_id => 'eeek', :data => data}
20
- hash = Couchdb.create_doc doc,@@auth_session
21
-
22
- doc = {:database => 'contacts', :doc_id => 'eeek'}
23
- hash = Couchdb.view doc,@@auth_session
24
- hash["_id"].should == 'eeek'
25
-
26
- data = {:age => "41", :lastname => "Stevens" }
27
- doc = { :database => 'contacts', :doc_id => 'eeek', :data => data}
28
- hash = Couchdb.update_doc doc,@@auth_session
29
- hash["id"].should == 'eeek'
30
- hash["ok"].should == true
31
- end
32
-
33
- it"should query a view" do
34
-
35
- doc = { :database => 'contacts', :design_doc => 'more_views', :json_doc => '/home/obi/bin/leanback/test/my_views.json' }
36
- hash = Couchdb.create_design doc,@@admin_auth_session
37
-
38
- doc = {:database => 'contacts', :doc_id => '_design/more_views'}
39
- hash = Couchdb.view doc,@@auth_session
40
- hash["_id"].should == '_design/more_views'
41
-
42
- view = { :database => "contacts", :design_doc => 'more_views', :view => 'get_email'}
43
- hash = Couchdb.find view,@@auth_session
44
- hash[0].has_key?("Firstname").should == true
45
- hash[0].has_key?("Lastname").should == true
46
- hash[0].has_key?("Email").should == true
47
- Couchdb.delete_doc({:database => 'contacts', :doc_id => '_design/more_views'},@@admin_auth_session)
48
-
49
-
50
- end
51
-
52
-
53
- it "should delete document" do
54
- hash = Couchdb.delete_doc({:database => 'contacts', :doc_id => 'eeek'},@@auth_session)
55
- hash["id"].should == 'eeek'
56
- hash["ok"].should == true
57
- doc = { :database => 'contacts', :doc_id => 'eeek'}
58
- lambda {Couchdb.view(doc,@@auth_session)}.should raise_error(CouchdbException,"CouchDB: Error - not_found. Reason - deleted")
59
- end
60
-
61
- it "should delete the database and user" do
62
- doc = {:database => '_users', :doc_id => 'org.couchdb.user:david'}
63
- Couchdb.delete_doc doc,@@admin_auth_session
64
- Couchdb.delete 'contacts',@@admin_auth_session
65
- end
66
-
67
- end
data/test/helper.rb DELETED
@@ -1,18 +0,0 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- begin
4
- Bundler.setup(:default, :development)
5
- rescue Bundler::BundlerError => e
6
- $stderr.puts e.message
7
- $stderr.puts "Run `bundle install` to install missing gems"
8
- exit e.status_code
9
- end
10
- require 'test/unit'
11
- require 'shoulda'
12
-
13
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
- $LOAD_PATH.unshift(File.dirname(__FILE__))
15
- require 'leanback'
16
-
17
- class Test::Unit::TestCase
18
- end
data/test/main.rb DELETED
@@ -1,295 +0,0 @@
1
- path = File.expand_path(File.dirname(__FILE__))
2
-
3
- require path + "/helper.rb"
4
-
5
- #auth_session = "b2JpOjRFQzE5QThGOl1vWmoCx68CKvF2eJKrZnkCFv1c"
6
-
7
-
8
- data = {:section => "admins",
9
- :key => "obi",
10
- :value => "trusted"}
11
-
12
- #hash = Couchdb.delete 'staff'
13
-
14
- #puts hash.inspect
15
-
16
- hash = Couchdb.login(username = 'obi',password ='trusted')
17
- auth_session = hash["AuthSession"]
18
-
19
-
20
- view = { :database => "monitors",
21
- :design_doc => 'tag_finder',
22
- :view => 'find_by_tag'}
23
-
24
- #hash = Couchdb.find view,auth_session,key='ralph', options = {:limit => 5, :skip => 1}
25
-
26
- #hash = Couchdb.find view,auth_session,key='ralph', options = {:limit => 5}
27
-
28
-
29
- #Couchdb.find_by({:database => 'zralph1369728249zeb1292e18b998352', :timestamp => 'Smith'},auth_session)
30
-
31
- #Couchdb.find_by({:database => 'monitors', :test => 'Smith'},auth_session)
32
-
33
- view = { :database => "zralph1369728249zeb1292e18b998352",
34
- :design_doc => 'timestamp_finder',
35
- :view => 'find_by_timestamp'}
36
-
37
- #hash = Couchdb.find view,auth_session,key=nil, options = {:startkey => "100", :endkey => "1369728370"}
38
-
39
- #hash = Couchdb.find view,auth_session,key="1369728370"
40
-
41
- #start 2013-05-29 20:22:07 -0400 1369873327
42
- #end 2013-05-29 20:19:07 -0400 1369873147
43
-
44
- view = { :database => "monitors",
45
- :design_doc => 'test_finder',
46
- :view => 'find_by_test'}
47
- #hash = Couchdb.find view,auth_session,key=nil, options = {:startkey => ["1000","UP"], :endkey => ["6000","UP"]}
48
-
49
- #hash = Couchdb.find view,auth_session,key=nil, options = {:startkey => ["3300","UP"],:descending => true}
50
-
51
- #hash = Couchdb.find view,auth_session,key=nil, options = {:descending => true}
52
-
53
- #hash = Couchdb.find view,auth_session,key= {:keys => ['3300','UP']}
54
-
55
- #hash = Couchdb.find view,auth_session,key= '?keys=%5B%228800%22,%22UP%22%5D'
56
-
57
- keys = {:tag =>'ralph', :via => 'ses' }
58
- hash = Couchdb.find_by_keys({:database => 'monitors', :keys => keys},auth_session)
59
-
60
- #keys = {:tag =>'ralph', :via => 'ses' }
61
- #num = Couchdb.count_by_keys({:database => 'monitors', :keys => keys},auth_session)
62
-
63
- #keys = {:tag =>'ralph', :via => 'ses', :every => '1m'}
64
- #hash = Couchdb.find_by_keys({:database => 'monitors', :keys => keys},auth_session, options = {:limit => 1, :skip => 1})
65
-
66
- #keys = {:tag =>'ralph', :via => 'ses', :every => '5m'}
67
- #num = Couchdb.count_by_keys({:database => 'monitors', :keys => keys},auth_session)
68
-
69
- #keys = {:tag => 'ralph'}
70
- #hash = Couchdb.find_by_keys({:database => 'monitors', :keys => keys},auth_session)
71
-
72
- #keys = {:tag => 'ralph'}
73
- #num = Couchdb.count_by_keys({:database => 'monitors', :keys => keys},auth_session)
74
-
75
-
76
- #Couchdb.add_multiple_finder({:database => "monitors", :keys => ["tag","via"]},auth_session)
77
-
78
- #Couchdb.add_multiple_finder({:database => "monitors", :keys => ["tag","via","state"]},auth_session)
79
-
80
- #Couchdb.add_multiple_finder({:database => "monitors", :keys => ["tag"]},auth_session)
81
-
82
- #puts num.to_s
83
-
84
- puts hash.inspect
85
-
86
-
87
- ###END OF KEYS TESTING########
88
-
89
- #user = { :username => "david", :password => "trusted", :roles => []}
90
- #Couchdb.add_user(user, auth_session )
91
-
92
- #hash = Couchdb.delete 'staff',auth_session
93
-
94
- #puts auth_session
95
-
96
- #Couchdb.create 'contacts',auth_session
97
-
98
- data = {:firstname => 'Linda',
99
- :lastname =>'smith',
100
- :phone => '212-234-1234',
101
- :email =>'john@mail.com'}
102
-
103
- doc = {:database => 'contacts', :doc_id => 'Linda', :data => data}
104
- #Couchdb.create_doc doc,auth_session
105
-
106
- data = {:email => "linda@mail.com" }
107
- doc = { :database => 'contacts', :doc_id => 'Linda', :data => data}
108
- #Couchdb.update_doc doc,auth_session
109
-
110
-
111
- doc = {:database => 'contacts', :doc_id => 'Linda'}
112
- #x= Couchdb.view doc,auth_session
113
-
114
- #puts x.inspect
115
-
116
- data = {:firstname => 'Linda',
117
- :lastname =>'smith',
118
- :email => 'linda@mail.com',
119
- :gender=>'female',
120
- :phone =>'718-245-5611',
121
- :_rev=>'2-d663618eda3268b83f96140b8250bc9e'}
122
-
123
- doc = {:database => 'contacts', :doc_id => 'Linda', :data => data}
124
- #Couchdb.edit_doc doc,auth_session
125
-
126
- doc = {:database => 'contacts', :doc_id => 'Linda'}
127
- #x= Couchdb.view doc,auth_session
128
-
129
-
130
-
131
- #puts x.inspect
132
-
133
- #x = Couchdb.find_by({:database => 'contacts', :email => 'linda@mail.com'} , auth_session)
134
-
135
- #puts x.inspect
136
-
137
-
138
- #Couchdb.delete 'contacts',auth_session
139
-
140
- #Couchdb.set_config data
141
-
142
- #hash = Couchdb.login(username = 'obi',password ='trusted')
143
- #puts hash.inspect
144
-
145
- #auth_session = hash["AuthSession"]
146
-
147
-
148
- #hash = Couchdb.add_finder({:database => 'mobsters', :key => 'email'})
149
-
150
- new_password = 'ninja'
151
- #puts new_password
152
- #puts Couchdb.change_password(username = 'kent', new_password, auth_session)
153
-
154
- #hash = Couchdb.login(username ,new_password)
155
- #user_auth_session = hash["AuthSession"]
156
-
157
- #puts user_auth_session
158
-
159
- #data = {:section => "httpd",
160
- # :key => "port"}
161
-
162
- data = {:section => "couchdb",
163
- :key => "database_dir"}
164
-
165
- #hash = Couchdb.get_config(data,auth_session)
166
- #puts hash.inspect
167
-
168
- data = { :admins => {"names" => ["david"], "roles" => ["admin"]},
169
- :readers => {"names" => ["david"],"roles" => ["admin"]}
170
- }
171
-
172
- #hash = Couchdb.set_security("contacts",data,auth_session)
173
- # hash = Couchdb.get_security("contacts",auth_session)
174
- # puts hash.inspect
175
-
176
- data = {:section => "admins",
177
- :key => "sample_admin",
178
- :value => "trusted"}
179
- #Couchdb.set_config data,auth_session
180
-
181
- data = {:section => "admins",
182
- :key => "sample_admin"}
183
-
184
- #hash = Couchdb.delete_config(data,auth_session)
185
- #puts "EKE" + hash.inspect
186
-
187
- #hash = Couchdb.create 'contactsabc',auth_session
188
- #hash = Couchdb.all,auth_session
189
- #puts hash.inspect
190
-
191
- data = {:firstname => 'Linda',
192
- :lastname =>'smith',
193
- :phone => '212-234-1234',
194
- :email =>'john@mail.com'}
195
-
196
- doc = {:database => 'contactsabc', :doc_id => 'Linda', :data => data}
197
- #hash = Couchdb.create_doc doc,auth_session
198
- #puts hash.inspect
199
-
200
- #hash = Couchdb.find_by( {:database => 'contactss', :email => 'john@mail.com'},auth_session)
201
- #puts hash.inspect
202
-
203
-
204
-
205
-
206
-
207
- data = {:section => "httpd",
208
- :key => "port",
209
- :value => "6980" }
210
- #Couchdb.set_config(data,auth_session)
211
-
212
- #Couchdb.port = "6980"
213
-
214
-
215
- #puts auth_session
216
- # Couchdb.create('staff',auth_session)
217
-
218
- #hash = Couchdb.add_finder({:database => 'contacts', :key => 'firstname'}, auth_session)
219
-
220
- #puts hash.inspect
221
-
222
- #user = { :username => "Will.i.am", :password => "trusted", :roles => []}
223
- #hash = Couchdb.add_user(user)
224
- #puts hash.inspect
225
-
226
- #user = { :username => "kris", :password => "trusted", :roles => ["drunk"]}
227
- #hash = Couchdb.add_user(user,auth_session)
228
- #puts hash.inspect
229
-
230
- #hash = Couchdb.login(username = 'kris',password ='trusted')
231
- #auth_session = hash["AuthSession"]
232
- #puts "session = " + auth_session
233
-
234
- #user = {:username => "jayz", :password => "trusted", :roles => ["student"], :salt => "whatevathesaltis",:email => 'uzi@aol.com'}
235
-
236
- #hash = Couchdb.create_user(user)
237
- #admins can add user roles
238
- #hash = Couchdb.create_user(user, auth_session)
239
-
240
- #puts hash.inspect
241
-
242
- #o = [('a'..'z'),('A'..'Z')].map{|i| i.to_a}.flatten;
243
- #salt = (0..50).map{ o[rand(o.length)] }.join;
244
-
245
- #puts salt
246
- data = { :admins => {"names" => ["nancy"], "roles" => ["admin"]},
247
- :readers => {"names" => ["nancy"],"roles" => ["admin"]}
248
- }
249
- #data = { :admins => {"names" => [], "roles" => []},
250
- # :readers => {"names" => [],"roles" => []}
251
- # }
252
-
253
- #hash = Couchdb.set_security("corn",data,auth_session)
254
- #puts hash.inspect
255
-
256
- #hash = Couchdb.get_security("corn",auth_session)
257
- #puts hash.inspect
258
-
259
-
260
-
261
- doc = { :database => 'contacts', :design_doc => 'more_views', :json_doc => '/home/obi/bin/leanback/test/my_views.json' }
262
- #hash = Couchdb.create_design doc, auth_session
263
- #puts hash.inspect
264
-
265
- view = {:database => 'contacts',
266
- :design_doc => 'my_views',
267
- :view => 'get_emails',
268
- :json_doc => '/home/obi/bin/my_views.json'}
269
-
270
- #docs = Couchdb.find_on_fly(view,"",auth_session)
271
- #puts "docs = " + docs.inspect
272
-
273
- #view = { :database => "contacts", :design_doc => 'more_views', :view => 'get_email'}
274
- #Couchdb.find view
275
-
276
- view = { :database => 'contacts',
277
- :design_doc => 'the_view',
278
- :view => 'age',
279
- :json_doc => '/home/obi/bin/view_age.json'}
280
-
281
- age = '36'
282
- #docs = Couchdb.find_on_fly(view,key = age, auth_session)
283
-
284
- #puts "docs = " + docs.inspect
285
-
286
- doc = {:database => 'contacts', :doc_id => '_design/the_view'}
287
- #hash = Couchdb.view doc, auth_session
288
- #puts hash.inspect
289
-
290
-
291
- #docs = Couchdb.find_by({:database => 'contacts', :lastname => 'Hanna'}, auth_session)
292
- #puts "docs = " + docs.inspect
293
-
294
- #docs = Couchdb.docs_from 'contacts', auth_session
295
- #puts "docs = " + docs.inspect
data/test/my_view.json DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "language" : "javascript",
3
- "views" :{
4
- "get_emails" : {
5
- "map" : "function(doc){ if(doc.firstname && doc.email) emit(doc.id,{Name: doc.firstname, Email: doc.email}); }"
6
- }
7
- }
8
- }
data/test/my_views.json DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "language" : "javascript",
3
- "views" :{
4
- "get_email" : {
5
- "map" : "function(doc){ if(doc.lastname && doc.email) emit(doc.id,{Firstname: doc.firstname, Lastname: doc.lastname, Email: doc.email}); }"
6
- }
7
- }
8
- }
data/test/start.json DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "language" : "javascript",
3
- "views" :{
4
- "age_gender" : {
5
- "map" : "function(doc){ if(doc.age && doc.gender) emit([doc.age, doc.gender],doc); }"
6
- }
7
- }
8
- }
@@ -1,319 +0,0 @@
1
- path = File.expand_path(File.dirname(__FILE__))
2
-
3
- require path + "/helper.rb"
4
-
5
- class TestLeanback < Test::Unit::TestCase
6
- #should "probably rename this file and start testing for real" do
7
- # flunk "hey buddy, you should probably rename this file and start testing for real"
8
- #end
9
-
10
-
11
- should "create a database if it doesn't already exist" do
12
- hash = Couchdb.create 'staff'
13
- assert_equal '{"ok"=>true}', hash.to_s
14
- response = RestClient.get 'http://127.0.0.1:5984/_all_dbs', {:content_type => :json}
15
- assert_equal true,response.include?("staff")
16
- end
17
-
18
- should "create a database if it doesn't already exist, and handle exception if it exists" do
19
- begin
20
- hash = Couchdb.create 'contacts'
21
- assert_equal '{"ok"=>true}', hash.to_s
22
- rescue => e
23
- assert_equal "CouchDB: Error - file_exists. Reason - The database could not be created, the file already exists.", e.to_s
24
- assert_equal "file_exists", e.error
25
- end
26
- end
27
-
28
- should "try to delete a database that doesn't exist and handle the exception" do
29
- begin
30
- hash = Couchdb.delete 'buildings'
31
- #puts hash.inspect
32
- rescue CouchdbException => e
33
- assert_equal "CouchDB: Error - not_found. Reason - missing", e.to_s
34
- assert_equal "not_found", e.error
35
- end
36
- end
37
-
38
- should "add a finder method to the database or handle exception if a finder already exists" do
39
- hash = Couchdb.add_finder(:database => 'contacts', :key => 'email')
40
- assert_equal true,hash.include?("_design/email_finder")
41
- assert_equal true,hash.include?("true")
42
- assert_equal true,hash.include?("rev")
43
-
44
- doc = {:database => 'contacts', :doc_id => '_design/email_finder'}
45
- hash = Couchdb.view doc
46
- assert_equal '_design/email_finder', hash["_id"]
47
- end
48
-
49
- should "find items by key" do
50
- #docs = Couchdb.find_by( :database => 'contacts', :email => 'nancy@mail.com')
51
- docs = Couchdb.find_by( :database => 'contacts', :lastname => 'smith')
52
- #docs = Couchdb.find_by( :database => 'contacts', :country => 'female')
53
-
54
- d = docs[0]
55
- assert_equal "smith", d["lastname"]
56
- end
57
-
58
- should "create and view document doc" do
59
-
60
- data = {:firstname => 'John',
61
- :lastname =>'smith',
62
- :phone => '202-234-1234',
63
- :email =>'james@mail.com',
64
- :age =>'34',
65
- :gender =>'male'}
66
-
67
- doc = {:database => 'contacts', :doc_id => 'john', :data => data}
68
- Couchdb.create_doc doc
69
-
70
- doc = {:database => 'contacts', :doc_id => 'john'}
71
- hash = Couchdb.view doc
72
- assert_equal 'john', hash["_id"]
73
- end
74
-
75
- should "Query a permanent view that doesn't exist and handle exception" do
76
- begin
77
- view = { :database => "contacts", :design_doc => 'more_views', :view => 'get_user_email'}
78
- Couchdb.find view
79
- rescue CouchdbException => e
80
- assert_equal "CouchDB: Error - not_found. Reason - missing_named_view", e.to_s
81
- assert_equal "not_found", e.error
82
- end
83
- end
84
-
85
-
86
- should "Query a permanent view" do
87
- view = { :database => "contacts", :design_doc => 'more_views', :view => 'get_email'}
88
- docs = Couchdb.find view
89
- assert_equal true,docs[0].include?("Email")
90
- assert_equal true,docs[0].include?("Lastname")
91
- end
92
-
93
-
94
- should "Query a permanent view and create the view on the fly, if it doesn't already exist" do
95
- view = {:database => 'contacts',
96
- :design_doc => 'my_views',
97
- :view => 'get_emails',
98
- :json_doc => '/home/obi/bin/my_views.json'}
99
-
100
- docs = Couchdb.find_on_fly(view)
101
- #assert_equal true,docs[0].include?("Email")
102
- #assert_equal true,docs[0].include?("Name")
103
- #verify that the view was created
104
- #doc = {:database => 'contacts', :doc_id => '_design/my_views'}
105
- #hash = Couchdb.view doc
106
- #assert_equal '_design/my_views', hash["_id"]
107
- end
108
-
109
- should "Query a permanent view by key and create the view on the fly, if it doesn't already exist" do
110
- view = { :database => 'contacts',
111
- :design_doc => 'the_view',
112
- :view => 'age',
113
- :json_doc => '/home/obi/bin/view_age.json'}
114
-
115
- age = '36'
116
- docs = Couchdb.find_on_fly(view,key = age)
117
- assert_equal true,docs[0].include?("age")
118
- d = docs[0]
119
- assert_equal '36', d["age"]
120
- verify that the view was created
121
- doc = {:database => 'contacts', :doc_id => '_design/the_view'}
122
- hash = Couchdb.view doc
123
- assert_equal '_design/the_view', hash["_id"]
124
- end
125
-
126
- should "Create a design doc/permanent view or handle exception" do
127
- doc = { :database => 'contacts', :design_doc => 'more_views', :json_doc => '/home/obi/bin/leanback/test/my_views.json' }
128
- hash = Couchdb.create_design doc
129
- assert_equal '_design/more_views', hash["id"]
130
- assert_equal true, hash["ok"]
131
-
132
- doc = {:database => 'contacts', :doc_id => '_design/more_views'}
133
- hash = Couchdb.view doc
134
- assert_equal '_design/more_views', hash["_id"]
135
- end
136
-
137
- should "return a display a list of all databases" do
138
- databases = Couchdb.all
139
- assert_equal true,databases.include?("contacts")
140
- end
141
-
142
- should "delete a database" do
143
- hash = Couchdb.delete 'staff'
144
- assert_equal true, hash["ok"]
145
- response = RestClient.get 'http://127.0.0.1:5984/_all_dbs', {:content_type => :json}
146
- assert_equal false,response.include?("staff")
147
- end
148
-
149
- should "create a document and handle exception if one occurs" do
150
- data = {:firstname => 'Nancy', :lastname =>'Lee', :phone => '347-808-3734',:email =>'nancy@mail.com',:gender => 'female'}
151
- doc = {:database => 'contacts', :doc_id => 'Nancy', :data => data}
152
- hash = Couchdb.create_doc doc
153
- assert_equal 'Nancy', hash["id"]
154
- assert_equal true, hash["ok"]
155
-
156
- doc = {:database => 'contacts', :doc_id => 'Nancy'}
157
- hash = Couchdb.view doc
158
- assert_equal 'Nancy', hash["_id"]
159
- assert_equal 'Nancy', hash["firstname"]
160
- assert_equal 'Lee', hash["lastname"]
161
- assert_equal '347-808-3734', hash["phone"]
162
- end
163
-
164
- should "update the document" do
165
- #data = {"age" => "42", "lastname" => "arnold", "phone" => "202-456-1234", "hobbies" => "football,running, video gamess" }
166
- data = {:age => "41", :lastname => "Stevens" }
167
- doc = { :database => 'contacts', :doc_id => 'john', :data => data}
168
- hash = Couchdb.update_doc doc
169
- assert_equal 'john', hash["id"]
170
- assert_equal true, hash["ok"]
171
-
172
- doc = {:database => 'contacts', :doc_id => 'john'}
173
- hash = Couchdb.view doc
174
- assert_equal 'john', hash["_id"]
175
- assert_equal '41', hash["age"]
176
- assert_equal 'Stevens', hash["lastname"]
177
- Couchdb.delete_doc :database => 'contacts', :doc_id => 'john'
178
- end
179
-
180
- should "delete sample documents - ready for next test run" do
181
- Couchdb.delete_doc :database => 'contacts', :doc_id => 'Nancy'
182
- Couchdb.delete_doc :database => 'contacts', :doc_id => '_design/more_views'
183
- #Couchdb.delete_doc :database => 'contacts', :doc_id => '_design/the_view'
184
- Couchdb.delete_doc :database => 'contacts', :doc_id => '_design/my_views'
185
- Couchdb.delete_doc :database => 'contacts', :doc_id => '_design/email_finder'
186
- end
187
-
188
- should "edit a document - handle exceptions" do
189
- begin
190
- #see delete without _rev above
191
- data = {:firstname => 'john', :lastname =>'smith', :email => 'john@mail.com',:gender=>'male', :_rev=>'2-e813a0e902e3ac114400ff3959a2adde'}
192
- doc = {:database => 'contacts', :doc_id => 'john', :data => data}
193
- hash = Couchdb.edit_doc doc
194
- #puts hash.inspect
195
- rescue CouchdbException => e
196
- assert_equal "CouchDB: Error - conflict. Reason - Document update conflict.", e.to_s
197
- assert_equal "conflict", e.error
198
- end
199
- end
200
-
201
- should "create and delete a document" do
202
- data = {:firstname => 'Sun',
203
- :lastname =>'Nova',
204
- :phone => '212-234-1234',
205
- :email =>'james@mail.com'}
206
-
207
- doc = {:database => 'contacts', :doc_id => 'Sun', :data => data}
208
- Couchdb.create_doc doc
209
-
210
- doc = {:database => 'contacts', :doc_id => 'Sun'}
211
- hash = Couchdb.delete_doc doc
212
-
213
- assert_equal 'Sun', hash["id"]
214
- assert_equal true, hash["ok"]
215
- begin
216
- doc = {:database => 'contacts', :doc_id => 'Sun'}
217
- Couchdb.view doc
218
- rescue CouchdbException => e
219
- assert_equal "CouchDB: Error - not_found. Reason - deleted", e.to_s
220
- assert_equal "not_found", e.error
221
- end
222
- end
223
-
224
- should "delete a document with revision number - any handle exceptions" do
225
- begin
226
- doc = {:database => 'contacts', :doc_id => 'james', :rev => '4-4e70528f7400e2e43d6543aec4d8aa2b'}
227
- hash = Couchdb.delete_rev doc
228
- #puts hash.inspect
229
- rescue CouchdbException => e
230
- assert_equal "CouchDB: Error - conflict. Reason - Document update conflict.", e.to_s
231
- assert_equal "conflict", e.error
232
- end
233
- end
234
-
235
- should "attempt to display all documents in the database that doesn't exist and handle exception" do
236
- begin
237
- docs = Couchdb.docs_from 'buildings'
238
- rescue CouchdbException => e
239
- assert_equal "CouchDB: Error - not_found. Reason - no_db_file", e.to_s
240
- assert_equal "not_found", e.error
241
- end
242
- end
243
-
244
-
245
-
246
- should "display all documents in the database" do
247
- #docs = Couchdb.docs_from 'monitors'
248
- #puts 'docs = Couchdb.docs_from monitors'
249
- #docs.each do |d|
250
- # puts "_rev: " + d["_rev"]
251
- #puts "_id: " + d["_id"]
252
- #puts "every: " + d["every"]
253
- #puts "monitor: " + d["monitor"]
254
- #puts "url: " + d["url"]
255
- #puts "test: " + d["test"]
256
- #puts "contact: " + d["contact"]
257
- #puts "via: " + d["via"]
258
- #puts "notify_interval: " + d["notify_interval"]
259
- #end
260
- end
261
-
262
- #TODO: add better tests with validations for couchDB configuration methods later
263
-
264
- should "change the timeout key to 78787 " do
265
- data = {:section => "couch_httpd_auth",
266
- :key => "timeout",
267
- :value => "78787"}
268
- Couchdb.set_config data
269
- end
270
-
271
- should "return the configuration values" do
272
- data = {:section => "httpd",
273
- :key => "port"}
274
- puts "port = " + Couchdb.get_config(data)
275
-
276
- data = {:section => "couch_httpd_auth",
277
- :key => "timeout"}
278
- puts "timeout = " + Couchdb.get_config(data)
279
- end
280
-
281
- should "set sample key values to couchDB configuration" do
282
- data = {:section => "sample_config_section",
283
- :key => "sample_key",
284
- :value => "sample_value"}
285
- Couchdb.set_config data
286
- end
287
-
288
- should "delete couchDB sample configuration" do
289
- data = {:section => "sample_config_section",
290
- :key => "sample_key"}
291
- hash = Couchdb.delete_config data
292
- puts hash.inspect
293
- end
294
-
295
- should "add an admin user" do
296
- # data = {:section => "admins",
297
- # :key => "obi",
298
- # :value => "trusted"}
299
- #Couchdb.set_config data
300
- end
301
-
302
- should "login a user" do
303
- #hash = Couchdb.login(username = 'obi',password ='trusted')
304
- #puts hash.inspect
305
- #sleep
306
- end
307
-
308
- should " switch to default bind address" do
309
- Couchdb.address = nil
310
- Couchdb.port = nil
311
- #Couchdb.all
312
- end
313
-
314
- end
315
-
316
-
317
-
318
-
319
-