From 6533fd16e94d86325aa0b530d53caf16fb707f8d Mon Sep 17 00:00:00 2001 From: David McKee Date: Thu, 27 Jun 2013 12:12:33 +0000 Subject: [PATCH 1/2] upsert with all keys --- dataset/persistence/table.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dataset/persistence/table.py b/dataset/persistence/table.py index d48a0db..87dc769 100644 --- a/dataset/persistence/table.py +++ b/dataset/persistence/table.py @@ -118,7 +118,7 @@ class Table(object): ``types``, matching the behavior of :py:meth:`insert() `. """ self._check_dropped() - if not len(keys): + if not len(keys) or len(keys)==len(row): return False clause = [(u, row.get(u)) for u in keys] """ From 3b238084eb5e27ab43b15782b8c11ee6574fc697 Mon Sep 17 00:00:00 2001 From: David McKee Date: Thu, 27 Jun 2013 12:13:28 +0000 Subject: [PATCH 2/2] test for upserting with all keys --- test/test_persistence.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/test_persistence.py b/test/test_persistence.py index 3bc48f8..a29056c 100644 --- a/test/test_persistence.py +++ b/test/test_persistence.py @@ -66,6 +66,15 @@ class TableTestCase(unittest.TestCase): ) assert len(self.tbl) == len(TEST_DATA)+1, len(self.tbl) + def test_upsert_all_key(self): + for i in range(0,2): + self.tbl.upsert({ + 'date': datetime(2011, 01, 02), + 'temperature': -10, + 'place': 'Berlin'}, + ['date', 'temperature', 'place'] + ) + def test_delete(self): self.tbl.insert({ 'date': datetime(2011, 01, 02),