Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@sugarlabs.org>2012-09-25 18:28:13 (GMT)
committer Aleksey Lim <alsroot@sugarlabs.org>2012-09-25 18:28:13 (GMT)
commit0b25ac7fe2549057464ac17f9bef11f49b4e1697 (patch)
treea5f250045c129c2c69fa54b6687ec184236067ab
parenta21b989abed211701b5e1340f830d2fc56828456 (diff)
Minor polishing to fix app tests
-rw-r--r--active_document/commands.py7
-rw-r--r--active_document/document.py7
-rw-r--r--active_document/volume.py12
-rwxr-xr-xtests/units/volume.py6
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: