Exemplo n.º 1
0
    def test_to_dict_after_commit(self):
        record = Foo()
        self.assertEqual(record.to_dict(), {})

        self.db.add_commit(record)

        self.assertNotEqual(record.to_dict(), {})
Exemplo n.º 2
0
    def test_to_dict_after_commit(self):
        record = Foo()
        self.assertEqual(record.to_dict(), {})

        self.db.add_commit(record)
        self.assertEqual(record.to_dict(refresh_on_empty=False), {})
        self.assertNotEqual(record.to_dict(), {})
Exemplo n.º 3
0
    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))
Exemplo n.º 4
0
    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'])
Exemplo n.º 5
0
    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())
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
    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)
Exemplo n.º 8
0
    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, {})
Exemplo n.º 9
0
    def test_update(self):
        data = self.records['Foo'][0]

        record = Foo()

        # it should accept a dict
        record.update(data)
        self.assertRecordValid(record, data)

        record = Foo()

        # it should accept keyword args
        record.update(**data)
        self.assertRecordValid(record, data)

        # it should be used by __init__
        self.assertRecordValid(Foo(data), data)
        self.assertRecordValid(Foo(**data), data)
Exemplo n.º 10
0
 def test_session(self):
     record = Foo.get(1)
     self.assertIs(record.session, self.db.session.object_session(record))
Exemplo n.º 11
0
 def test_get_by(self):
     self.assertEqual(Foo.get_by(string='Joe Smith'), self.db.query(Foo).filter_by(string='Joe Smith').first())
     self.assertEqual(Foo.get_by(dict(string='Joe Smith')), self.db.query(Foo).filter_by(string='Joe Smith').first())
Exemplo n.º 12
0
 def test_get(self):
     self.assertEqual(Foo.get(1), self.db.query(Foo).get(1))
Exemplo n.º 13
0
    def test_dict_to_dict(self):
        data = Foo.get(1)

        self.assertEqual(dict(data), data.to_dict())