mongo 0.18.3 → 0.19
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +41 -50
- data/Rakefile +14 -4
- data/examples/gridfs.rb +25 -70
- data/lib/mongo.rb +4 -2
- data/lib/mongo/collection.rb +70 -89
- data/lib/mongo/connection.rb +203 -43
- data/lib/mongo/cursor.rb +7 -7
- data/lib/mongo/db.rb +61 -18
- data/lib/mongo/exceptions.rb +7 -1
- data/lib/mongo/gridfs.rb +8 -1
- data/lib/mongo/gridfs/chunk.rb +2 -1
- data/lib/mongo/gridfs/grid.rb +90 -0
- data/lib/mongo/gridfs/grid_file_system.rb +113 -0
- data/lib/mongo/gridfs/grid_io.rb +339 -0
- data/lib/mongo/gridfs/grid_store.rb +43 -18
- data/lib/mongo/types/binary.rb +5 -1
- data/lib/mongo/types/code.rb +1 -1
- data/lib/mongo/types/dbref.rb +3 -1
- data/lib/mongo/types/min_max_keys.rb +1 -1
- data/lib/mongo/types/objectid.rb +16 -55
- data/lib/mongo/types/regexp_of_holding.rb +1 -1
- data/lib/mongo/util/bson_c.rb +2 -2
- data/lib/mongo/util/bson_ruby.rb +22 -11
- data/lib/mongo/util/byte_buffer.rb +1 -1
- data/lib/mongo/util/conversions.rb +1 -1
- data/lib/mongo/util/ordered_hash.rb +6 -1
- data/lib/mongo/util/server_version.rb +1 -1
- data/lib/mongo/util/support.rb +1 -1
- data/mongo-ruby-driver.gemspec +1 -1
- data/test/auxillary/authentication_test.rb +68 -0
- data/test/auxillary/autoreconnect_test.rb +41 -0
- data/test/binary_test.rb +15 -0
- data/test/{test_bson.rb → bson_test.rb} +63 -6
- data/test/{test_byte_buffer.rb → byte_buffer_test.rb} +0 -0
- data/test/{test_chunk.rb → chunk_test.rb} +0 -0
- data/test/{test_collection.rb → collection_test.rb} +35 -39
- data/test/{test_connection.rb → connection_test.rb} +33 -3
- data/test/{test_conversions.rb → conversions_test.rb} +0 -0
- data/test/{test_cursor.rb → cursor_test.rb} +0 -7
- data/test/{test_db_api.rb → db_api_test.rb} +3 -6
- data/test/{test_db_connection.rb → db_connection_test.rb} +0 -0
- data/test/{test_db.rb → db_test.rb} +33 -15
- data/test/grid_file_system_test.rb +210 -0
- data/test/grid_io_test.rb +78 -0
- data/test/{test_grid_store.rb → grid_store_test.rb} +33 -2
- data/test/grid_test.rb +87 -0
- data/test/{test_objectid.rb → objectid_test.rb} +2 -33
- data/test/{test_ordered_hash.rb → ordered_hash_test.rb} +4 -0
- data/test/{test_slave_connection.rb → slave_connection_test.rb} +0 -0
- data/test/test_helper.rb +2 -2
- data/test/{test_threading.rb → threading_test.rb} +0 -0
- data/test/unit/collection_test.rb +12 -3
- data/test/unit/connection_test.rb +85 -24
- data/test/unit/cursor_test.rb +1 -2
- data/test/unit/db_test.rb +70 -69
- metadata +27 -23
- data/bin/objectid_benchmark.rb +0 -23
- data/bin/perf.rb +0 -30
- data/lib/mongo/admin.rb +0 -95
- data/lib/mongo/util/xml_to_ruby.rb +0 -112
- data/test/test_admin.rb +0 -67
- data/test/test_round_trip.rb +0 -114
data/lib/mongo/util/support.rb
CHANGED
data/mongo-ruby-driver.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.rdoc_options = ['--main', 'README.rdoc', '--inline-source']
|
23
23
|
s.extra_rdoc_files = ['README.rdoc']
|
24
24
|
|
25
|
-
s.authors = ['Jim Menard', 'Mike Dirolf']
|
25
|
+
s.authors = ['Jim Menard', 'Mike Dirolf', 'Kyle Banker']
|
26
26
|
s.email = 'mongodb-dev@googlegroups.com'
|
27
27
|
s.homepage = 'http://www.mongodb.org'
|
28
28
|
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
$:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
require 'mongo'
|
3
|
+
require 'test/unit'
|
4
|
+
require 'test/test_helper'
|
5
|
+
|
6
|
+
# NOTE: This test requires bouncing the server.
|
7
|
+
# It also requires that a user exists on the admin database.
|
8
|
+
class AuthenticationTest < Test::Unit::TestCase
|
9
|
+
include Mongo
|
10
|
+
|
11
|
+
def setup
|
12
|
+
@conn = Mongo::Connection.new
|
13
|
+
@db1 = @conn.db('mongo-ruby-test-auth1')
|
14
|
+
@db2 = @conn.db('mongo-ruby-test-auth2')
|
15
|
+
@admin = @conn.db('admin')
|
16
|
+
end
|
17
|
+
|
18
|
+
def teardown
|
19
|
+
@db1.authenticate('user1', 'secret')
|
20
|
+
@db2.authenticate('user2', 'secret')
|
21
|
+
@conn.drop_database('mongo-ruby-test-auth1')
|
22
|
+
@conn.drop_database('mongo-ruby-test-auth2')
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_authenticate
|
26
|
+
@admin.authenticate('bob', 'secret')
|
27
|
+
@db1.add_user('user1', 'secret')
|
28
|
+
@db2.add_user('user2', 'secret')
|
29
|
+
@admin.logout
|
30
|
+
|
31
|
+
assert_raise Mongo::OperationFailure do
|
32
|
+
@db1['stuff'].insert({:a => 2}, :safe => true)
|
33
|
+
end
|
34
|
+
|
35
|
+
assert_raise Mongo::OperationFailure do
|
36
|
+
@db2['stuff'].insert({:a => 2}, :safe => true)
|
37
|
+
end
|
38
|
+
|
39
|
+
@db1.authenticate('user1', 'secret')
|
40
|
+
@db2.authenticate('user2', 'secret')
|
41
|
+
|
42
|
+
assert @db1['stuff'].insert({:a => 2}, :safe => true)
|
43
|
+
assert @db2['stuff'].insert({:a => 2}, :safe => true)
|
44
|
+
|
45
|
+
puts "Please bounce the server."
|
46
|
+
gets
|
47
|
+
|
48
|
+
# Here we reconnect.
|
49
|
+
begin
|
50
|
+
@db1['stuff'].find.to_a
|
51
|
+
rescue Mongo::ConnectionFailure
|
52
|
+
end
|
53
|
+
|
54
|
+
assert @db1['stuff'].insert({:a => 2}, :safe => true)
|
55
|
+
assert @db2['stuff'].insert({:a => 2}, :safe => true)
|
56
|
+
|
57
|
+
@db1.logout
|
58
|
+
assert_raise Mongo::OperationFailure do
|
59
|
+
@db1['stuff'].insert({:a => 2}, :safe => true)
|
60
|
+
end
|
61
|
+
|
62
|
+
@db2.logout
|
63
|
+
assert_raise Mongo::OperationFailure do
|
64
|
+
assert @db2['stuff'].insert({:a => 2}, :safe => true)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
$:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
require 'mongo'
|
3
|
+
require 'test/unit'
|
4
|
+
require 'test/test_helper'
|
5
|
+
|
6
|
+
# NOTE: This test requires bouncing the server
|
7
|
+
class AutoreconnectTest < Test::Unit::TestCase
|
8
|
+
include Mongo
|
9
|
+
|
10
|
+
def setup
|
11
|
+
@conn = Mongo::Connection.new
|
12
|
+
@db = @conn.db('mongo-ruby-test')
|
13
|
+
@db.drop_collection("test-connect")
|
14
|
+
@coll = @db.collection("test-connect")
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_query
|
18
|
+
@coll.save({:a => 20})
|
19
|
+
@coll.save({:a => 30})
|
20
|
+
@coll.save({:a => 40})
|
21
|
+
results = []
|
22
|
+
@coll.find.each {|r| results << r}
|
23
|
+
[20, 30, 40].each do |a|
|
24
|
+
assert results.any? {|r| r['a'] == a}, "Could not find record for a => #{a}"
|
25
|
+
end
|
26
|
+
|
27
|
+
puts "Please disconnect and then reconnect the current master."
|
28
|
+
gets
|
29
|
+
|
30
|
+
begin
|
31
|
+
@coll.find.to_a
|
32
|
+
rescue Mongo::ConnectionFailure
|
33
|
+
end
|
34
|
+
|
35
|
+
results = []
|
36
|
+
@coll.find.each {|r| results << r}
|
37
|
+
[20, 30, 40].each do |a|
|
38
|
+
assert results.any? {|r| r['a'] == a}, "Could not find record for a => #{a}"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/test/binary_test.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# encoding:utf-8
|
2
|
+
require 'test/test_helper'
|
3
|
+
|
4
|
+
class BinaryTest < Test::Unit::TestCase
|
5
|
+
context "Inspecting" do
|
6
|
+
setup do
|
7
|
+
@data = ("THIS IS BINARY " * 50).unpack("c*")
|
8
|
+
end
|
9
|
+
|
10
|
+
should "not display actual data" do
|
11
|
+
binary = Mongo::Binary.new(@data)
|
12
|
+
assert_equal "<Mongo::Binary:#{binary.object_id}>", binary.inspect
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -138,10 +138,9 @@ class BSONTest < Test::Unit::TestCase
|
|
138
138
|
assert_equal doc, doc2
|
139
139
|
|
140
140
|
r = doc2['doc']
|
141
|
-
assert_kind_of
|
142
|
-
assert_equal '', r.extra_options_str
|
141
|
+
assert_kind_of Regexp, r
|
143
142
|
|
144
|
-
r.
|
143
|
+
r = RegexpOfHolding.new('st', 0, 'zywcab')
|
145
144
|
assert_equal 'zywcab', r.extra_options_str
|
146
145
|
|
147
146
|
doc = {'doc' => r}
|
@@ -263,19 +262,19 @@ class BSONTest < Test::Unit::TestCase
|
|
263
262
|
val = OrderedHash.new
|
264
263
|
val['not_id'] = 1
|
265
264
|
val['_id'] = 2
|
266
|
-
roundtrip = BSON.deserialize(BSON.serialize(val).to_a)
|
265
|
+
roundtrip = BSON.deserialize(BSON.serialize(val, false, true).to_a)
|
267
266
|
assert_kind_of OrderedHash, roundtrip
|
268
267
|
assert_equal '_id', roundtrip.keys.first
|
269
268
|
|
270
269
|
val = {'a' => 'foo', 'b' => 'bar', :_id => 42, 'z' => 'hello'}
|
271
|
-
roundtrip = BSON.deserialize(BSON.serialize(val).to_a)
|
270
|
+
roundtrip = BSON.deserialize(BSON.serialize(val, false, true).to_a)
|
272
271
|
assert_kind_of OrderedHash, roundtrip
|
273
272
|
assert_equal '_id', roundtrip.keys.first
|
274
273
|
end
|
275
274
|
|
276
275
|
def test_nil_id
|
277
276
|
doc = {"_id" => nil}
|
278
|
-
assert_equal doc, BSON.deserialize(bson = BSON.serialize(doc).to_a)
|
277
|
+
assert_equal doc, BSON.deserialize(bson = BSON.serialize(doc, false, true).to_a)
|
279
278
|
end
|
280
279
|
|
281
280
|
def test_timestamp
|
@@ -357,6 +356,13 @@ class BSONTest < Test::Unit::TestCase
|
|
357
356
|
assert_equal BSON.serialize(one).to_a, BSON.serialize(dup).to_a
|
358
357
|
end
|
359
358
|
|
359
|
+
def test_no_duplicate_id_when_moving_id
|
360
|
+
dup = {"_id" => "foo", :_id => "foo"}
|
361
|
+
one = {:_id => "foo"}
|
362
|
+
|
363
|
+
assert_equal BSON.serialize(one, false, true).to_s, BSON.serialize(dup, false, true).to_s
|
364
|
+
end
|
365
|
+
|
360
366
|
def test_null_character
|
361
367
|
doc = {"a" => "\x00"}
|
362
368
|
|
@@ -394,4 +400,55 @@ class BSONTest < Test::Unit::TestCase
|
|
394
400
|
end
|
395
401
|
end
|
396
402
|
|
403
|
+
def test_move_id
|
404
|
+
a = OrderedHash.new
|
405
|
+
a['text'] = 'abc'
|
406
|
+
a['key'] = 'abc'
|
407
|
+
a['_id'] = 1
|
408
|
+
|
409
|
+
|
410
|
+
assert_equal ")\000\000\000\020_id\000\001\000\000\000\002text" +
|
411
|
+
"\000\004\000\000\000abc\000\002key\000\004\000\000\000abc\000\000",
|
412
|
+
BSON.serialize(a, false, true).to_s
|
413
|
+
assert_equal ")\000\000\000\002text\000\004\000\000\000abc\000\002key" +
|
414
|
+
"\000\004\000\000\000abc\000\020_id\000\001\000\000\000\000",
|
415
|
+
BSON.serialize(a, false, false).to_s
|
416
|
+
end
|
417
|
+
|
418
|
+
def test_move_id_with_nested_doc
|
419
|
+
b = OrderedHash.new
|
420
|
+
b['text'] = 'abc'
|
421
|
+
b['_id'] = 2
|
422
|
+
c = OrderedHash.new
|
423
|
+
c['text'] = 'abc'
|
424
|
+
c['hash'] = b
|
425
|
+
c['_id'] = 3
|
426
|
+
assert_equal ">\000\000\000\020_id\000\003\000\000\000\002text" +
|
427
|
+
"\000\004\000\000\000abc\000\003hash\000\034\000\000" +
|
428
|
+
"\000\002text\000\004\000\000\000abc\000\020_id\000\002\000\000\000\000\000",
|
429
|
+
BSON.serialize(c, false, true).to_s
|
430
|
+
assert_equal ">\000\000\000\002text\000\004\000\000\000abc\000\003hash" +
|
431
|
+
"\000\034\000\000\000\002text\000\004\000\000\000abc\000\020_id" +
|
432
|
+
"\000\002\000\000\000\000\020_id\000\003\000\000\000\000",
|
433
|
+
BSON.serialize(c, false, false).to_s
|
434
|
+
end
|
435
|
+
|
436
|
+
begin
|
437
|
+
require 'active_support'
|
438
|
+
rescue LoadError
|
439
|
+
warn 'Could not test BSON with HashWithIndifferentAccess.'
|
440
|
+
end
|
441
|
+
|
442
|
+
if defined?(HashWithIndifferentAccess)
|
443
|
+
def test_keep_id_with_hash_with_indifferent_access
|
444
|
+
doc = HashWithIndifferentAccess.new
|
445
|
+
doc[:_id] = ObjectID.new
|
446
|
+
BSON.serialize(doc, false, false).to_a
|
447
|
+
assert doc.has_key?("_id")
|
448
|
+
|
449
|
+
doc['_id'] = ObjectID.new
|
450
|
+
BSON.serialize(doc, false, false).to_a
|
451
|
+
assert doc.has_key?("_id")
|
452
|
+
end
|
453
|
+
end
|
397
454
|
end
|
File without changes
|
File without changes
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'test/test_helper'
|
2
2
|
|
3
3
|
class TestCollection < Test::Unit::TestCase
|
4
|
-
@@connection
|
4
|
+
@@connection ||= Connection.new(ENV['MONGO_RUBY_DRIVER_HOST'] || 'localhost', ENV['MONGO_RUBY_DRIVER_PORT'] || Connection::DEFAULT_PORT)
|
5
5
|
@@db = @@connection.db('ruby-mongo-test')
|
6
6
|
@@test = @@db.collection("test")
|
7
7
|
@@version = @@connection.server_version
|
@@ -75,32 +75,31 @@ class TestCollection < Test::Unit::TestCase
|
|
75
75
|
end
|
76
76
|
|
77
77
|
if @@version > "1.1"
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
end
|
88
|
-
|
89
|
-
should "return distinct values" do
|
90
|
-
assert_equal [0, 1, 2, 3], @@test.distinct(:a).sort
|
91
|
-
assert_equal ["a", "b", "c"], @@test.distinct("b.c").sort
|
92
|
-
end
|
93
|
-
|
94
|
-
if @@version >= "1.2"
|
78
|
+
def setup_for_distinct
|
79
|
+
@@test.remove
|
80
|
+
@@test.insert([{:a => 0, :b => {:c => "a"}},
|
81
|
+
{:a => 1, :b => {:c => "b"}},
|
82
|
+
{:a => 1, :b => {:c => "c"}},
|
83
|
+
{:a => 2, :b => {:c => "a"}},
|
84
|
+
{:a => 3},
|
85
|
+
{:a => 3}])
|
86
|
+
end
|
95
87
|
|
96
|
-
|
97
|
-
|
98
|
-
|
88
|
+
def test_distinct_queries
|
89
|
+
setup_for_distinct
|
90
|
+
assert_equal [0, 1, 2, 3], @@test.distinct(:a).sort
|
91
|
+
assert_equal ["a", "b", "c"], @@test.distinct("b.c").sort
|
92
|
+
end
|
99
93
|
|
100
|
-
|
101
|
-
|
102
|
-
|
94
|
+
if @@version >= "1.2"
|
95
|
+
def test_filter_collection_with_query
|
96
|
+
setup_for_distinct
|
97
|
+
assert_equal [2, 3], @@test.distinct(:a, {:a => {"$gt" => 1}}).sort
|
98
|
+
end
|
103
99
|
|
100
|
+
def test_filter_nested_objects
|
101
|
+
setup_for_distinct
|
102
|
+
assert_equal ["a", "b"], @@test.distinct("b.c", {"b.c" => {"$ne" => "c"}}).sort
|
104
103
|
end
|
105
104
|
end
|
106
105
|
end
|
@@ -191,7 +190,7 @@ class TestCollection < Test::Unit::TestCase
|
|
191
190
|
end
|
192
191
|
end
|
193
192
|
|
194
|
-
def
|
193
|
+
def test_mocked_safe_remove
|
195
194
|
@conn = Connection.new
|
196
195
|
@db = @conn['mongo-ruby-test']
|
197
196
|
@test = @db['test-safe-remove']
|
@@ -204,6 +203,15 @@ class TestCollection < Test::Unit::TestCase
|
|
204
203
|
@test.drop
|
205
204
|
end
|
206
205
|
|
206
|
+
def test_safe_remove
|
207
|
+
@conn = Connection.new
|
208
|
+
@db = @conn['mongo-ruby-test']
|
209
|
+
@test = @db['test-safe-remove']
|
210
|
+
@test.save({:a => 50})
|
211
|
+
@test.remove({}, :safe => true)
|
212
|
+
@test.drop
|
213
|
+
end
|
214
|
+
|
207
215
|
def test_count
|
208
216
|
@@test.drop
|
209
217
|
|
@@ -429,15 +437,9 @@ class TestCollection < Test::Unit::TestCase
|
|
429
437
|
assert_equal 4, @@test.group([], {}, @initial, Code.new(@reduce_function, {"inc_value" => 2}))[0]["count"]
|
430
438
|
end
|
431
439
|
|
432
|
-
should "group results using command form" do
|
433
|
-
assert_equal 1, @@test.group([], {}, @initial, Code.new(@reduce_function, {"inc_value" => 0.5}), true)[0]["count"]
|
434
|
-
assert_equal 2, @@test.group([], {}, @initial, Code.new(@reduce_function, {"inc_value" => 1}), true)[0]["count"]
|
435
|
-
assert_equal 4, @@test.group([], {}, @initial, Code.new(@reduce_function, {"inc_value" => 2}), true)[0]["count"]
|
436
|
-
end
|
437
|
-
|
438
440
|
should "finalize grouped results" do
|
439
441
|
@finalize = "function(doc) {doc.f = doc.count + 200; }"
|
440
|
-
assert_equal 202, @@test.group([], {}, @initial, Code.new(@reduce_function, {"inc_value" => 1}),
|
442
|
+
assert_equal 202, @@test.group([], {}, @initial, Code.new(@reduce_function, {"inc_value" => 1}), @finalize)[0]["f"]
|
441
443
|
end
|
442
444
|
end
|
443
445
|
|
@@ -455,16 +457,10 @@ class TestCollection < Test::Unit::TestCase
|
|
455
457
|
end
|
456
458
|
|
457
459
|
should "group results" do
|
458
|
-
results = @@test.group(@keyf, {}, @initial, @reduce
|
460
|
+
results = @@test.group(@keyf, {}, @initial, @reduce).sort {|a, b| a['count'] <=> b['count']}
|
459
461
|
assert results[0]['even'] && results[0]['count'] == 2.0
|
460
462
|
assert results[1]['odd'] && results[1]['count'] == 3.0
|
461
463
|
end
|
462
|
-
|
463
|
-
should "raise an error if trying to use keyf as a group eval" do
|
464
|
-
assert_raise OperationFailure do
|
465
|
-
@@test.group(@keyf, {}, @initial, @reduce)
|
466
|
-
end
|
467
|
-
end
|
468
464
|
end
|
469
465
|
|
470
466
|
context "A collection with two records" do
|
@@ -69,8 +69,6 @@ class TestConnection < Test::Unit::TestCase
|
|
69
69
|
assert_kind_of Array, names
|
70
70
|
assert names.length >= 1
|
71
71
|
assert names.include?('ruby-mongo-info-test')
|
72
|
-
|
73
|
-
@mongo.drop_database('ruby-mongo-info-test')
|
74
72
|
end
|
75
73
|
|
76
74
|
def test_logging
|
@@ -80,7 +78,7 @@ class TestConnection < Test::Unit::TestCase
|
|
80
78
|
db = Connection.new(@host, @port, :logger => logger).db('ruby-mongo-test')
|
81
79
|
assert output.string.include?("admin.$cmd.find")
|
82
80
|
end
|
83
|
-
|
81
|
+
|
84
82
|
def test_connection_logger
|
85
83
|
output = StringIO.new
|
86
84
|
logger = Logger.new(output)
|
@@ -124,6 +122,38 @@ class TestConnection < Test::Unit::TestCase
|
|
124
122
|
assert_equal ['foo', 123], nodes[1]
|
125
123
|
end
|
126
124
|
|
125
|
+
context "Saved authentications" do
|
126
|
+
setup do
|
127
|
+
@conn = Mongo::Connection.new
|
128
|
+
@auth = {'db_name' => 'test', 'username' => 'bob', 'password' => 'secret'}
|
129
|
+
@conn.add_auth(@auth['db_name'], @auth['username'], @auth['password'])
|
130
|
+
end
|
131
|
+
|
132
|
+
should "save the authentication" do
|
133
|
+
assert_equal @auth, @conn.auths[0]
|
134
|
+
end
|
135
|
+
|
136
|
+
should "replace the auth if given a new auth for the same db" do
|
137
|
+
auth = {'db_name' => 'test', 'username' => 'mickey', 'password' => 'm0u53'}
|
138
|
+
@conn.add_auth(auth['db_name'], auth['username'], auth['password'])
|
139
|
+
assert_equal 1, @conn.auths.length
|
140
|
+
assert_equal auth, @conn.auths[0]
|
141
|
+
end
|
142
|
+
|
143
|
+
should "remove auths by database" do
|
144
|
+
@conn.remove_auth('non-existent database')
|
145
|
+
assert_equal 1, @conn.auths.length
|
146
|
+
|
147
|
+
@conn.remove_auth('test')
|
148
|
+
assert_equal 0, @conn.auths.length
|
149
|
+
end
|
150
|
+
|
151
|
+
should "remove all auths" do
|
152
|
+
@conn.clear_auths
|
153
|
+
assert_equal 0, @conn.auths.length
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
127
157
|
context "Connection exceptions" do
|
128
158
|
setup do
|
129
159
|
@conn = Mongo::Connection.new('localhost', 27017, :pool_size => 10, :timeout => 10)
|
File without changes
|
@@ -54,13 +54,6 @@ class CursorTest < Test::Unit::TestCase
|
|
54
54
|
assert_equal 0, @@db['acollectionthatdoesn'].count()
|
55
55
|
end
|
56
56
|
|
57
|
-
def test_next_object_deprecation
|
58
|
-
@@coll.remove
|
59
|
-
@@coll.insert({"a" => 1})
|
60
|
-
|
61
|
-
assert_equal 1, @@coll.find().next_object["a"]
|
62
|
-
end
|
63
|
-
|
64
57
|
def test_sort
|
65
58
|
@@coll.remove
|
66
59
|
5.times{|x| @@coll.insert({"age" => x}) }
|