48
48
self.assertRaises(InvalidURI, parse_userinfo,
50
50
self.assertRaises(InvalidURI, parse_userinfo, ':')
51
self.assert_(parse_userinfo('user:password'))
51
self.assertTrue(parse_userinfo('user:password'))
52
52
self.assertEqual(('us:r', 'p@ssword'),
53
53
parse_userinfo('us%3Ar:p%40ssword'))
54
self.assertEqual(('us er', 'p ssword'),
55
parse_userinfo('us+er:p+ssword'))
56
self.assertEqual(('us er', 'p ssword'),
57
parse_userinfo('us%20er:p%20ssword'))
58
self.assertEqual(('us+er', 'p+ssword'),
59
parse_userinfo('us%2Ber:p%2Bssword'))
55
61
def test_split_hosts(self):
56
62
self.assertRaises(ConfigurationError, split_hosts,
78
84
self.assertRaises(ConfigurationError, split_options, 'socketTimeoutMS=0.0')
79
85
self.assertRaises(ConfigurationError, split_options, 'connectTimeoutMS=foo')
80
86
self.assertRaises(ConfigurationError, split_options, 'connectTimeoutMS=0.0')
81
self.assert_(split_options, 'socketTimeoutMS=300')
82
self.assert_(split_options, 'connectTimeoutMS=300')
83
self.assertEquals({'sockettimeoutms': 0.3}, split_options('socketTimeoutMS=300'))
84
self.assertEquals({'sockettimeoutms': 0.0001}, split_options('socketTimeoutMS=0.1'))
85
self.assertEquals({'connecttimeoutms': 0.3}, split_options('connectTimeoutMS=300'))
86
self.assertEquals({'connecttimeoutms': 0.0001}, split_options('connectTimeoutMS=0.1'))
87
self.assert_(split_options, 'connectTimeoutMS=300')
87
self.assertTrue(split_options('socketTimeoutMS=300'))
88
self.assertTrue(split_options('connectTimeoutMS=300'))
89
self.assertEqual({'sockettimeoutms': 0.3}, split_options('socketTimeoutMS=300'))
90
self.assertEqual({'sockettimeoutms': 0.0001}, split_options('socketTimeoutMS=0.1'))
91
self.assertEqual({'connecttimeoutms': 0.3}, split_options('connectTimeoutMS=300'))
92
self.assertEqual({'connecttimeoutms': 0.0001}, split_options('connectTimeoutMS=0.1'))
93
self.assertTrue(split_options('connectTimeoutMS=300'))
88
94
self.assertTrue(isinstance(split_options('w=5')['w'], int))
89
95
self.assertTrue(isinstance(split_options('w=5.5')['w'], basestring))
90
self.assert_(split_options, 'w=foo')
91
self.assert_(split_options, 'w=majority')
96
self.assertTrue(split_options('w=foo'))
97
self.assertTrue(split_options('w=majority'))
92
98
self.assertRaises(ConfigurationError, split_options, 'wtimeoutms=foo')
93
99
self.assertRaises(ConfigurationError, split_options, 'wtimeoutms=5.5')
94
self.assert_(split_options, 'wtimeoutms=500')
100
self.assertTrue(split_options('wtimeoutms=500'))
95
101
self.assertRaises(ConfigurationError, split_options, 'fsync=foo')
96
102
self.assertRaises(ConfigurationError, split_options, 'fsync=5.5')
97
103
self.assertEqual({'fsync': True}, split_options('fsync=true'))
98
104
self.assertEqual({'fsync': False}, split_options('fsync=false'))
99
self.assertRaises(ConfigurationError, split_options, 'maxpoolsize=foo')
100
self.assertRaises(ConfigurationError, split_options, 'maxpoolsize=5.5')
101
self.assert_(split_options, 'maxpoolsize=50')
105
# maxPoolSize isn't yet a documented URI option.
106
self.assertRaises(ConfigurationError, split_options, 'maxpoolsize=50')
103
108
def test_parse_uri(self):
104
109
self.assertRaises(InvalidURI, parse_uri, "http://foobar.com")