Esempio n. 1
0
    def test_to_dict_without_id(self):
        # with structure
        class Person(Model):
            collection_name = 'person_test'
            structure = {
                'name': unicode,
                'desc': 'dynamic',
                'age': int,
            }
        Person.connect(Testing)
        Person.collection.remove({})

        model = Person(name='John Doe', age=35, desc='no one', bla='ble')
        model.upsert()

        self.assertIn('_id', model._data)
        self.assertNotIn('_id', model.to_dict(with_id=False))
        self.assertIn('_id', model.to_dict())

        # without structure
        class NoStructPerson(Model):
            collection_name = 'person_test'

        new_model = NoStructPerson(model.to_dict())

        self.assertIn('_id', new_model._data)
        self.assertNotIn('_id', new_model.to_dict(with_id=False))
        self.assertIn('_id', new_model.to_dict())
Esempio n. 2
0
 def test_insert(self):
     model = self.ModelTest(a=1, b=2)
     model.upsert()
     self.assertEqual(self.ModelTest.collection.find().count(), 1)
     self.assertTrue(model._id)
     self.assertIn('_id', model._data.keys())
     self.assertTrue(self.ModelTest.collection.find({'a': 1, 'b': 2}))
Esempio n. 3
0
    def test_update(self):
        model = self.ModelTest(a=1, b=2)
        model.upsert()
        retrieved_model = self.ModelTest.collection.find_one({'a': 1})
        self.assertEqual(retrieved_model['b'], model.b)

        model.set(b=4)
        model.upsert()
        self.assertEqual(self.ModelTest.collection.find({'a': 1}).count(), 1)

        retrieved_model = self.ModelTest.collection.find_one({'a': 1})
        self.assertEqual(retrieved_model['b'], 4)
        self.assertEqual(retrieved_model['_id'], model._id)
Esempio n. 4
0
    def test_partial_update(self):
        model = self.ModelTest(a=1, b=2, c=3)
        model.upsert()

        retrieved_doc = self.ModelTest.collection.find_one(
                {'a': 1, 'b': 2, 'c': 3})

        _id = retrieved_doc['_id']

        model = self.ModelTest({'_id': _id})
        model.set(a=5)
        model.set(b=6)
        self.assertNotIn('c', model._data)
        model.upsert()

        retrieved_doc = self.ModelTest.collection.find_one({'_id': _id})
        self.assertEqual(retrieved_doc,
                {'a': 5, 'b': 6, 'c': 3, '_id': _id})
Esempio n. 5
0
    def test_id_on_inserted_model(self):
        class Person(Model):
            collection_name = 'person_test'
            structure = {
                'name': unicode,
                'desc': 'dynamic',
                'age': int,
            }
        Person.connect(Testing)
        Person.collection.remove({})

        model = Person(name='John Doe', age=35, desc='no one', bla='ble')
        _id = model.upsert()
        self.assertTrue(model.get('_id'))
        self.assertEqual(model._id, _id)

        self.assertIn('_id', model.to_dict())
        self.assertEqual(model.to_dict(), dict(
            name=u'John Doe',
            age=35,
            desc='no one',
            _id=_id
        ))