class TestMongoResource(object): def setup(self): self.query = {'_id': 5} self.config = configs.MongoConfig() self.resource = MongoResource(resource_name=None, config=self.config, proxies=None, collection='things') def test_create(self): doc = {'test': 'doc'} inserted_id = 'mongo_id' expected = { '_id': inserted_id } with mock.patch.object(type(self.resource), 'client'): with mock.patch.object(type(self.resource), 'collection'): self.resource.collection.insert.return_value = inserted_id result = self.resource.create(query=None, attributes=doc) self.resource.collection.insert.assert_called_once_with(doc, safe=True) assert_equals(expected, result) def test_read(self): doc = [{'_id': 5, 'test': 'doc' }] cursor = mock.MagicMock() cursor.__iter__.return_value = iter(doc) cursor.count.return_value = 1 with mock.patch.object(type(self.resource), 'client'): with mock.patch.object(type(self.resource), 'collection'): self.resource.collection.find.return_value = cursor result = self.resource.read(query=self.query) self.resource.collection.find.assert_called_once_with(self.query, fields=None) assert_equals(doc, result) def test_update(self): doc = {'test': 'doc' } with mock.patch.object(type(self.resource), 'client'): with mock.patch.object(type(self.resource), 'collection'): result = self.resource.update(query=self.query, attributes=doc) self.resource.collection.update.assert_called_once_with( self.query, doc, safe=True ) def test_delete(self): with mock.patch.object(type(self.resource), 'client'): with mock.patch.object(type(self.resource), 'collection'): result = self.resource.delete(query=self.query) self.resource.collection.remove.assert_called_once_with( self.query, safe=True ) def test_exists(self): count = mock.MagicMock() count.return_value = 1 with mock.patch.object(type(self.resource), 'client'): with mock.patch.object(type(self.resource), 'collection'): self.resource.collection.find.return_value = count result = self.resource.exists(self.query) self.resource.collection.find.assert_called_once_with(self.query)
def setup(self): self.query = {'_id': 5} self.config = configs.MongoConfig() self.resource = MongoResource(resource_name=None, config=self.config, proxies=None, collection='things')