def _test_insert(self, person_cls): Person = person_cls s = Session() with self.sql_execution_asserter(testing.db) as asserter: s.bulk_insert_mappings(Person, [{ "id": 5, "personname": "thename" }]) eq_(s.query(Person).first(), Person(id=5, personname="thename")) return asserter
def test_bulk_insert_render_nulls(self): (Order, ) = self.classes("Order") s = Session() with self.sql_execution_asserter() as asserter: s.bulk_insert_mappings( Order, [ { "id": 1, "description": "u1new" }, { "id": 2, "description": None }, { "id": 3, "description": "u3new" }, ], render_nulls=True, ) asserter.assert_( CompiledSQL( "INSERT INTO orders (id, description) " "VALUES (:id, :description)", [ { "id": 1, "description": "u1new" }, { "id": 2, "description": None }, { "id": 3, "description": "u3new" }, ], ))
def test_bulk_insert(self): (User, ) = self.classes("User") s = Session() with self.sql_execution_asserter() as asserter: s.bulk_insert_mappings( User, [ { "id": 1, "name": "u1new" }, { "id": 2, "name": "u2" }, { "id": 3, "name": "u3new" }, ], ) asserter.assert_( CompiledSQL( "INSERT INTO users (id, name) VALUES (:id, :name)", [ { "id": 1, "name": "u1new" }, { "id": 2, "name": "u2" }, { "id": 3, "name": "u3new" }, ], ))
def test_bulk_insert_joined_inh_return_defaults(self): Person, Engineer, Manager, Boss = self.classes("Person", "Engineer", "Manager", "Boss") s = Session() with self.sql_execution_asserter() as asserter: s.bulk_insert_mappings( Boss, [ dict( name="b1", status="s1", manager_name="mn1", golf_swing="g1", ), dict( name="b2", status="s2", manager_name="mn2", golf_swing="g2", ), dict( name="b3", status="s3", manager_name="mn3", golf_swing="g3", ), ], return_defaults=True, ) asserter.assert_( CompiledSQL("INSERT INTO people (name) VALUES (:name)", [{ "name": "b1" }]), CompiledSQL("INSERT INTO people (name) VALUES (:name)", [{ "name": "b2" }]), CompiledSQL("INSERT INTO people (name) VALUES (:name)", [{ "name": "b3" }]), CompiledSQL( "INSERT INTO managers (person_id, status, manager_name) " "VALUES (:person_id, :status, :manager_name)", [ { "person_id": 1, "status": "s1", "manager_name": "mn1" }, { "person_id": 2, "status": "s2", "manager_name": "mn2" }, { "person_id": 3, "status": "s3", "manager_name": "mn3" }, ], ), CompiledSQL( "INSERT INTO boss (boss_id, golf_swing) VALUES " "(:boss_id, :golf_swing)", [ { "golf_swing": "g1", "boss_id": 1 }, { "golf_swing": "g2", "boss_id": 2 }, { "golf_swing": "g3", "boss_id": 3 }, ], ), )