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({