Esempio n. 1
0
 def test_proxy_setitem_to_data_dict(self):
     model = self.ModelTest(a=1)
     model.set({'b': 2, 'c': 3})
     self.assertEqual(model._data, {'a': 1, 'b': 2, 'c': 3})
     model.set({'c': 4})
     self.assertEqual(model._data['c'], 4)
     self.assertEqual(model.c, 4)
Esempio n. 2
0
    def test_get(self):
        model = self.ModelTest()
        model.set(a=1)
        self.assertEqual(model.get('a'), 1)
        self.assertEqual(model.a, 1)

        model._data['a'] = 2
        self.assertEqual(model.get('a'), 2)

        self.assertIs(model.get('b'), None)
        with self.assertRaises(AttributeError):
            model.b
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_set(self):
        model = self.ModelTest()
        with self.assertRaises(ValueError):
            model.set()
        model.set({'a': 1})

        model2 = self.ModelTest()
        model2.set(a=1)

        self.assertEqual(model._data, model2._data)

        model.set({'a': 1, 'b': 2})
        self.assertEqual(model.get('a'), 1)
        self.assertEqual(model._data['b'], 2)
        self.assertEqual(model._data, {'a': 1, 'b': 2})

        model.set(c=3, d=4)
        self.assertEqual(model.get('c'), 3)
        self.assertEqual(model.d, 4)
Esempio n. 6
0
 def test_data_property_setter(self):
     model = self.ModelTest()
     model.set({'a': 1, 'b': 2, 'c': 3})
     self.assertEqual(model._data, {'a': 1, 'b': 2, 'c': 3})
     model.set({'a': 2, 'd': 4})
     self.assertEqual(model._data, {'a': 2, 'b': 2, 'c': 3, 'd': 4})
Esempio n. 7
0
 def test_data_property_getter(self):
     model = self.ModelTest({'a': 1}, b=2)
     model.set({'c': 3})
     self.assertEqual(model._data, {'a': 1, 'b': 2, 'c': 3})
     self.assertEqual(model.get('a'), 1)
     self.assertEqual(model.b, 2)