Skip to content

Commit

Permalink
added __setitem__ handling of DesignDocs
Browse files Browse the repository at this point in the history
Change-Id: I12f8a4158af4f87523de1ea4062133f743f6d367
Reviewed-on: http://review.couchbase.org/20123
Reviewed-by: Pavel Paulau <pavel.paulau@gmail.com>
Tested-by: Benjamin Young <benjamin@couchbase.com>
  • Loading branch information
BigBlueHat authored and Benjamin Young committed Aug 28, 2012
1 parent 0e689e3 commit 874808d
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
3 changes: 3 additions & 0 deletions couchbase/client.py
Expand Up @@ -292,6 +292,9 @@ def __setitem__(self, key, value):
v = value['value']
self.set(key, value.get('expiration', 0),
value.get('flags', 0), v)
elif key.startswith('_design/'):
rest = self.server._rest()
rest.create_design_doc(self.name, key[8:], json.dumps(value))
else:
self.set(key, 0, 0, json.dumps(value))
else:
Expand Down
14 changes: 14 additions & 0 deletions couchbase/tests/test_client.py
Expand Up @@ -287,6 +287,20 @@ def test_design_docs(self):
for key in doc_names:
self.client.delete(key)

@attr(cbv="2.0.0")
def test_design_doc_creation_via_setitem(self):
design_doc = {"views":
{"testing":
{"map":
"function(doc) { emit(doc.name, doc.num); }"
}
}
}
self.client['_design/testing_setitem'] = design_doc
self.assertIn('testing_setitem', self.client.design_docs())
rest = self.client.server._rest()
rest.delete_design_doc(self.client.name, 'testing_setitem')


class DesignDocTest(Base):
def setUp(self):
Expand Down

0 comments on commit 874808d

Please sign in to comment.