diff --git a/cloudant/document.py b/cloudant/document.py index 1bfb3bd..8749423 100644 --- a/cloudant/document.py +++ b/cloudant/document.py @@ -24,14 +24,17 @@ def merge(self, change, **kwargs): and then `PUT` the updated document back to the server. """ response = self.get() - # block until result if the object is using async + # block until result if the object is using async/is a future if hasattr(response, 'result'): response = response.result() + # handle upserts if response.status_code == 404: doc = {} else: + response.raise_for_status() doc = response.json() + # merge! doc.update(change) return self.put(params=doc, **kwargs) diff --git a/cloudant/resource.py b/cloudant/resource.py index 3aedd42..3e251c5 100644 --- a/cloudant/resource.py +++ b/cloudant/resource.py @@ -1,5 +1,4 @@ from requests_futures.sessions import FuturesSession -import urllib import requests import urlparse import json