Skip to content

Commit f6b40bb

Browse files
committed
Prevent document deletion from deleting database (issue 123).
1 parent 048ca87 commit f6b40bb

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

couchdb/client.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,6 +449,8 @@ def delete(self, doc):
449449
:raise ResourceConflict: if the document was updated in the database
450450
:since: 0.4.1
451451
"""
452+
if doc['_id'] is None:
453+
raise ValueError('document ID cannot be None')
452454
self.resource.delete_json(doc['_id'], rev=doc['_rev'])
453455

454456
def get(self, id, default=None, **options):

couchdb/tests/client.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,10 @@ def test_disallow_nan(self):
176176
except ValueError:
177177
pass
178178

179+
def test_disallow_none_id(self):
180+
deldoc = lambda: self.db.delete({'_id': None, '_rev': None})
181+
self.assertRaises(ValueError, deldoc)
182+
179183
def test_doc_revs(self):
180184
doc = {'bar': 42}
181185
self.db['foo'] = doc

0 commit comments

Comments
 (0)