diff options
author | Aleksey Lim <alsroot@sugarlabs.org> | 2012-09-25 18:28:13 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@sugarlabs.org> | 2012-09-25 18:28:13 (GMT) |
commit | 0b25ac7fe2549057464ac17f9bef11f49b4e1697 (patch) | |
tree | a5f250045c129c2c69fa54b6687ec184236067ab | |
parent | a21b989abed211701b5e1340f830d2fc56828456 (diff) |
Minor polishing to fix app tests
-rw-r--r-- | active_document/commands.py | 7 | ||||
-rw-r--r-- | active_document/document.py | 7 | ||||
-rw-r--r-- | active_document/volume.py | 12 | ||||
-rwxr-xr-x | tests/units/volume.py | 6 |
4 files changed, 16 insertions, 16 deletions
diff --git a/active_document/commands.py b/active_document/commands.py index 5b0a4d9..4e1ea2a 100644 --- a/active_document/commands.py +++ b/active_document/commands.py @@ -98,9 +98,6 @@ class Request(dict): def __init__(self, *args, **props): if args: props = args[0] - for key in props.keys(): - if hasattr(self, key): - setattr(self, key, props.pop(key)) dict.__init__(self, props) self._pos = 0 @@ -124,7 +121,7 @@ class Request(dict): self._pos += len(result) return result - def copy(self): + def clone(self): request = type(self)() request.access_level = self.access_level request.accept_language = self.accept_language @@ -135,7 +132,7 @@ class Request(dict): content_length=None, **kwargs): enforce(self.commands is not None) - request = self.copy() + request = self.clone() request.update(kwargs) request['method'] = method request.content = content diff --git a/active_document/document.py b/active_document/document.py index 9573ad4..2eab567 100644 --- a/active_document/document.py +++ b/active_document/document.py @@ -23,13 +23,13 @@ from active_document.metadata import active_property _logger = logging.getLogger('active_document.document') -class Document(dict): +class Document(object): #: `Metadata` object that describes the document metadata = None def __init__(self, guid, record, cached_props=None, request=None): - dict.__init__(self, cached_props or {}) + self.props = cached_props or {} self.guid = guid self._record = record self.request = request @@ -60,7 +60,7 @@ class Document(dict): """ prop = self.metadata[prop] - value = dict.get(self, prop.name) + value = self.props.get(prop.name) if value is None and self._record is not None: meta = self._record.get(prop.name) if meta is not None: @@ -68,6 +68,7 @@ class Document(dict): value = meta.get('value') else: value = meta + self.props[prop.name] = value if value is not None and accept_language: if isinstance(prop, StoredProperty) and prop.localized: diff --git a/active_document/volume.py b/active_document/volume.py index db8326e..6828990 100644 --- a/active_document/volume.py +++ b/active_document/volume.py @@ -134,10 +134,10 @@ class VolumeCommands(CommandsProcessor): permissions=env.ACCESS_AUTH) def create(self, request): with self._post(request, env.ACCESS_CREATE) as (directory, doc): - enforce('guid' not in doc, env.Forbidden, + enforce('guid' not in doc.props, env.Forbidden, "Property 'guid' cannot be set manually") - self.before_create(request, doc) - doc.guid = directory.create(doc) + self.before_create(request, doc.props) + doc.guid = directory.create(doc.props) return doc.guid @directory_command(method='GET', @@ -160,8 +160,8 @@ class VolumeCommands(CommandsProcessor): permissions=env.ACCESS_AUTH | env.ACCESS_AUTHOR) def update(self, request): with self._post(request, env.ACCESS_WRITE) as (directory, doc): - self.before_update(request, doc) - directory.update(doc.guid, doc) + self.before_update(request, doc.props) + directory.update(doc.guid, doc.props) @property_command(method='PUT', permissions=env.ACCESS_AUTH | env.ACCESS_AUTHOR) @@ -259,7 +259,7 @@ class VolumeCommands(CommandsProcessor): else: if prop.localized and isinstance(value, basestring): value = {(request.accept_language or self._lang)[0]: value} - doc[name] = value + doc.props[name] = value yield directory, doc diff --git a/tests/units/volume.py b/tests/units/volume.py index d40673f..5227baf 100755 --- a/tests/units/volume.py +++ b/tests/units/volume.py @@ -169,7 +169,7 @@ class VolumeTest(tests.Test): blob_path = tests.tmpdir + '/testdocument/%s/%s/blob' % (guid[:2], guid) blob_meta = { - 'seqno': 2, + 'seqno': 3, 'path': blob_path + '.blob', 'digest': hashlib.sha1('blob').hexdigest(), 'mime_type': 'application/octet-stream', @@ -957,7 +957,7 @@ class VolumeTest(tests.Test): self.assertEqual('0!1!', ''.join(self.call('GET', document='testdocument', guid=guid, prop='blob'))) def call(self, method, document=None, guid=None, prop=None, - accept_language=None, **kwargs): + accept_language=None, content=None, content_stream=None, **kwargs): class TestRequest(Request): @@ -965,6 +965,8 @@ class VolumeTest(tests.Test): content_length = 0 request = TestRequest(kwargs) + request.content = content + request.content_stream = content_stream request.accept_language = accept_language request['method'] = method if document: |