Пример #1
0
    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
Пример #2
0
    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"
                    },
                ],
            ))
Пример #3
0
    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"
                    },
                ],
            ))
Пример #4
0
    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
                    },
                ],
            ),
        )