diff --git a/dataset/persistence/table.py b/dataset/persistence/table.py index 1626670..0158930 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] """ 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),