def test_connect_uri(self): """Ensure that the connect() method works properly with uri's """ c = connect(alias='admin') register_db('mongoenginetest', 'admin', 'admin') c.admin.system.users.remove({}) c.mongoenginetest.system.users.remove({}) c.admin.add_user("admin", "password") c.admin.authenticate("admin", "password") c.mongoenginetest.add_user("username", "password") self.assertRaises( ConnectionError, connect, "testdb_uri_bad", host='mongodb://*****:*****@localhost') # Whilst database names can be specified in the URI, they are ignored # in mongoengine since the DB/connection split connect(host='mongodb://*****:*****@localhost/mongoenginetest') register_db('testdb_uri') conn = get_connection() self.assertTrue(isinstance(conn, pymongo.connection.Connection)) db = get_db() self.assertTrue(isinstance(db, pymongo.database.Database)) self.assertEqual(db.name, 'testdb_uri')
def setUp(self): connect() register_db('mongoenginetest') class Person(Document): name = StringField() age = IntField() self.Person = Person
def setUp(self): connect() register_db('mongoenginetest') self.db = get_db() class Person(DynamicDocument): name = StringField() meta = {'allow_inheritance': True} Person.drop_collection() self.Person = Person
def setUp(self): connect() register_db("mongoenginetest") self.db = get_db() class Person(DynamicDocument): name = StringField() meta = {"allow_inheritance": True} Person.drop_collection() self.Person = Person
def test_register_connection(self): """Ensure that connections with different aliases may be registered. """ register_connection('testdb') register_db('mongoenginetest2', 'testdb', 'testdb') self.assertRaises(ConnectionError, get_connection) conn = get_connection('testdb') self.assertTrue(isinstance(conn, pymongo.connection.Connection)) db = get_db('testdb') self.assertTrue(isinstance(db, pymongo.database.Database)) self.assertEqual(db.name, 'mongoenginetest2')
def test_connect(self): """Ensure that the connect() method works properly. """ connect() register_db('mongoenginetest') conn = get_connection() self.assertTrue(isinstance(conn, pymongo.connection.Connection)) db = get_db() self.assertTrue(isinstance(db, pymongo.database.Database)) self.assertEqual(db.name, 'mongoenginetest') connect(alias='testdb') conn = get_connection('testdb') self.assertTrue(isinstance(conn, pymongo.connection.Connection))
def setUp(self): connect() register_db('mongoenginetest') class Author(Document): name = StringField() def __unicode__(self): return self.name @classmethod def pre_init(cls, sender, document, *args, **kwargs): signal_output.append('pre_init signal, %s' % cls.__name__) signal_output.append(str(kwargs['values'])) @classmethod def post_init(cls, sender, document, **kwargs): signal_output.append('post_init signal, %s' % document) @classmethod def pre_save(cls, sender, document, **kwargs): signal_output.append('pre_save signal, %s' % document) @classmethod def post_save(cls, sender, document, **kwargs): signal_output.append('post_save signal, %s' % document) if 'created' in kwargs: if kwargs['created']: signal_output.append('Is created') else: signal_output.append('Is updated') @classmethod def pre_delete(cls, sender, document, **kwargs): signal_output.append('pre_delete signal, %s' % document) @classmethod def post_delete(cls, sender, document, **kwargs): signal_output.append('post_delete signal, %s' % document) @classmethod def pre_bulk_insert(cls, sender, documents, **kwargs): signal_output.append('pre_bulk_insert signal, %s' % documents) @classmethod def post_bulk_insert(cls, sender, documents, **kwargs): signal_output.append('post_bulk_insert signal, %s' % documents) if kwargs.get('loaded', False): signal_output.append('Is loaded') else: signal_output.append('Not loaded') self.Author = Author class Another(Document): name = StringField() def __unicode__(self): return self.name @classmethod def pre_init(cls, sender, document, **kwargs): signal_output.append('pre_init Another signal, %s' % cls.__name__) signal_output.append(str(kwargs['values'])) @classmethod def post_init(cls, sender, document, **kwargs): signal_output.append('post_init Another signal, %s' % document) @classmethod def pre_save(cls, sender, document, **kwargs): signal_output.append('pre_save Another signal, %s' % document) @classmethod def post_save(cls, sender, document, **kwargs): signal_output.append('post_save Another signal, %s' % document) if 'created' in kwargs: if kwargs['created']: signal_output.append('Is created') else: signal_output.append('Is updated') @classmethod def pre_delete(cls, sender, document, **kwargs): signal_output.append('pre_delete Another signal, %s' % document) @classmethod def post_delete(cls, sender, document, **kwargs): signal_output.append('post_delete Another signal, %s' % document) self.Another = Another # Save up the number of connected signals so that we can check at the end # that all the signals we register get properly unregistered self.pre_signals = ( len(signals.pre_init.receivers), len(signals.post_init.receivers), len(signals.pre_save.receivers), len(signals.post_save.receivers), len(signals.pre_delete.receivers), len(signals.post_delete.receivers), len(signals.pre_bulk_insert.receivers), len(signals.post_bulk_insert.receivers), ) signals.pre_init.connect(Author.pre_init, sender=Author) signals.post_init.connect(Author.post_init, sender=Author) signals.pre_save.connect(Author.pre_save, sender=Author) signals.post_save.connect(Author.post_save, sender=Author) signals.pre_delete.connect(Author.pre_delete, sender=Author) signals.post_delete.connect(Author.post_delete, sender=Author) signals.pre_bulk_insert.connect(Author.pre_bulk_insert, sender=Author) signals.post_bulk_insert.connect(Author.post_bulk_insert, sender=Author) signals.pre_init.connect(Another.pre_init, sender=Another) signals.post_init.connect(Another.post_init, sender=Another) signals.pre_save.connect(Another.pre_save, sender=Another) signals.post_save.connect(Another.post_save, sender=Another) signals.pre_delete.connect(Another.pre_delete, sender=Another) signals.post_delete.connect(Another.post_delete, sender=Another)
def setUp(self): connect() register_db('mongoenginetest') self.db = get_db()