From 875e0508f2465f268afe62c910fe149e542fdb00 Mon Sep 17 00:00:00 2001 From: Gregor Aisch Date: Sat, 6 Apr 2013 03:06:51 +0200 Subject: [PATCH] insert returns last_id (closes #4) --- dataset/persistence/table.py | 3 ++- test/test_persistence.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/dataset/persistence/table.py b/dataset/persistence/table.py index d0fa460..d8dafe7 100644 --- a/dataset/persistence/table.py +++ b/dataset/persistence/table.py @@ -66,7 +66,8 @@ class Table(object): self._check_dropped() if ensure: self._ensure_columns(row, types=types) - self.database.engine.execute(self.table.insert(row)) + res = self.database.engine.execute(self.table.insert(row)) + return res.lastrowid def insert_many(self, rows, chunk_size=1000, ensure=True, types={}): """ diff --git a/test/test_persistence.py b/test/test_persistence.py index b70f527..3bc48f8 100644 --- a/test/test_persistence.py +++ b/test/test_persistence.py @@ -42,12 +42,13 @@ class TableTestCase(unittest.TestCase): def test_insert(self): assert len(self.tbl) == len(TEST_DATA), len(self.tbl) - self.tbl.insert({ + last_id = self.tbl.insert({ 'date': datetime(2011, 01, 02), 'temperature': -10, 'place': 'Berlin'} ) assert len(self.tbl) == len(TEST_DATA)+1, len(self.tbl) + assert self.tbl.find_one(id=last_id)['place'] == 'Berlin' def test_upsert(self): self.tbl.upsert({