예제 #1
0
    def _test_update(self, person_cls):
        Person = person_cls

        s = Session()
        s.add(Person(id=5, personname="thename"))
        s.commit()

        with self.sql_execution_asserter(testing.db) as asserter:
            s.bulk_update_mappings(Person, [{
                "id": 5,
                "personname": "newname"
            }])

        eq_(s.query(Person).first(), Person(id=5, personname="newname"))

        return asserter
예제 #2
0
    def test_bulk_update(self):
        (User, ) = self.classes("User")

        s = Session(expire_on_commit=False)
        objects = [User(name="u1"), User(name="u2"), User(name="u3")]
        s.add_all(objects)
        s.commit()

        s = Session()
        with self.sql_execution_asserter() as asserter:
            s.bulk_update_mappings(
                User,
                [
                    {
                        "id": 1,
                        "name": "u1new"
                    },
                    {
                        "id": 2,
                        "name": "u2"
                    },
                    {
                        "id": 3,
                        "name": "u3new"
                    },
                ],
            )

        asserter.assert_(
            CompiledSQL(
                "UPDATE users SET name=:name WHERE users.id = :users_id",
                [
                    {
                        "users_id": 1,
                        "name": "u1new"
                    },
                    {
                        "users_id": 2,
                        "name": "u2"
                    },
                    {
                        "users_id": 3,
                        "name": "u3new"
                    },
                ],
            ))