diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-12-07 20:36:01 -0500 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-12-07 20:36:01 -0500 |
| commit | 07cc9e054ae4d5bb9cfc3c1d807b2a0d58a95b69 (patch) | |
| tree | 67d674975985cd2ebce1f54b928759024fe2e56e /test/orm/test_bulk.py | |
| parent | c42b8f8eb8f4c324e2469bf3baaa316c214abce5 (diff) | |
| download | sqlalchemy-07cc9e054ae4d5bb9cfc3c1d807b2a0d58a95b69.tar.gz | |
- add an option for bulk_save -> update to not do history
Diffstat (limited to 'test/orm/test_bulk.py')
| -rw-r--r-- | test/orm/test_bulk.py | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/test/orm/test_bulk.py b/test/orm/test_bulk.py index f6d2513d1..e27d3b73c 100644 --- a/test/orm/test_bulk.py +++ b/test/orm/test_bulk.py @@ -13,7 +13,7 @@ class BulkTest(testing.AssertsExecutionResults): run_define_tables = 'each' -class BulkInsertTest(BulkTest, _fixtures.FixtureTest): +class BulkInsertUpdateTest(BulkTest, _fixtures.FixtureTest): @classmethod def setup_mappers(cls): @@ -75,6 +75,35 @@ class BulkInsertTest(BulkTest, _fixtures.FixtureTest): ) assert 'id' not in objects[0].__dict__ + def test_bulk_save_updated_include_unchanged(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() + + objects[0].name = 'u1new' + objects[2].name = 'u3new' + + s = Session() + with self.sql_execution_asserter() as asserter: + s.bulk_save_objects(objects, update_changed_only=False) + + asserter.assert_( + CompiledSQL( + "UPDATE users SET id=:id, name=:name WHERE " + "users.id = :users_id", + [{'users_id': 1, 'id': 1, 'name': 'u1new'}, + {'users_id': 2, 'id': 2, 'name': 'u2'}, + {'users_id': 3, 'id': 3, 'name': 'u3new'}] + ) + ) + class BulkInheritanceTest(BulkTest, fixtures.MappedTest): @classmethod |
