def test_getitem(self): c = CouchDB(self.username, self.password, url=self.url) c.connect() c['a'] = c._DATABASE_CLASS(c, 'a') c['b'] = c._DATABASE_CLASS(c, 'b') self.assertTrue(isinstance(c['a'], c._DATABASE_CLASS)) self.assertTrue(isinstance(c['b'], c._DATABASE_CLASS)) self.assertRaises(KeyError, c.__getitem__, 'd') with mock.patch('cloudant.account.CouchDatabase.exists') as mock_exists: mock_exists.return_value = True self.assertTrue(isinstance(c['c'], c._DATABASE_CLASS))
def test_get(self): c = CouchDB(self.username, self.password, url=self.url) c.connect() c['a'] = c._DATABASE_CLASS(c, 'a') self.assertEqual(c.get('a'), c['a']) self.assertEqual(c.get('d', None), None) with mock.patch('cloudant.account.CouchDatabase.exists') as mock_exists: mock_exists.return_value = True self.assertTrue(isinstance(c.get('b', remote=True), c._DATABASE_CLASS)) self.assertTrue(c.get('d', None, remote=True) is None)
def test_delitem(self): c = CouchDB(self.username, self.password, url=self.url) c.connect() c.delete_database = mock.Mock() c['a'] = c._DATABASE_CLASS(c, 'a') c['b'] = c._DATABASE_CLASS(c, 'b') del c['a'] self.assertTrue('b' in c) self.assertTrue('a' not in c) c.__delitem__('b', remote=True) self.assertTrue(c.delete_database.called)
def test_setitem(self): c = CouchDB(self.username, self.password, url=self.url) c.connect() self.assertRaises(CloudantException, c.__setitem__, 'c', 'womp') value = c._DATABASE_CLASS(c, 'a') c.__setitem__('c', value) self.assertTrue(c['c'] == value) value.exists = mock.Mock() value.exists.return_value = False value.create = mock.Mock() c.__setitem__('c', value, remote=True) self.assertTrue(value.create.called) self.assertTrue(c['c'] == value)