def test_to_dict_hook(self): foo = Foo.get(1) def bar_to_dict(): return [i for i, bar in enumerate(foo.bars)] foo.bars.to_dict = bar_to_dict data = foo.to_dict() self.assertEqual(data['bars'], bar_to_dict())
def test_update_strict(self): bar = Bar.get(1) test = {'foo': {'string': 'BAR'}} bar.update(test, strict=True) self.db.commit() foo = Foo.get(bar.foo_id) self.assertNotEqual(foo.string, test['foo']['string'])
def test_save(self): record = Foo.get(1) new_number = record.number * record.number + 1 record.number = new_number record.save() self.db.commit() result = self.db.execute('select number from foo where _id=1') self.assertEqual(result.fetchone()[0], new_number)
def test_expunge(self): _id = 10 record = Foo(_id=_id) # add record to session, expunge it, and then commit self.db.add(record) record.expunge() self.db.commit() # it should not have been added to the database self.assertIsNone(Foo.get(_id))
def test_refresh(self): record = Foo.get(1) number = record.number new_number = number * number + 1 # execute non-ORM transaction self.db.execute('update foo set number = :n where _id = 1', params={'n': new_number}) # it's value hasn't changed self.assertEqual(record.number, number) record.refresh() # it's values are empty # it's values are reloaded immediately self.assertNotEquals(record.to_dict(), {}) self.assertEqual(record.number, new_number)
def test_expire(self): record = Foo.get(1) number = record.number new_number = number * number + 1 # execute non-ORM transaction self.db.execute('update foo set number = :n where _id = 1', params={'n': new_number}) # it's value hasn't changed self.assertEqual(record.number, number) record.expire() # it's values are empty self.assertEqual(record.descriptor_dict, {}) # it's values are reloaded on access self.assertEqual(record.number, new_number) self.assertNotEquals(record.descriptor_dict, {})
def test_session(self): record = Foo.get(1) self.assertIs(record.session, self.db.session.object_session(record))
def test_get(self): self.assertEqual(Foo.get(1), self.db.query(Foo).get(1))
def test_dict_to_dict(self): data = Foo.get(1) self.assertEqual(dict(data), data.to_dict())