Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/olpc/datastore/model.py
diff options
context:
space:
mode:
authorBenjamin Saller <bcsaller@objectrealms.net>2007-08-16 10:30:40 (GMT)
committer Benjamin Saller <bcsaller@objectrealms.net>2007-08-16 10:30:40 (GMT)
commit91c3eebfbe6aa586150d9405792f6e02fb34fa81 (patch)
treed06251e07807cf25b1413b65cbdfbad7f151b334 /src/olpc/datastore/model.py
parent993b69294686830639299a62b844e2e9319b54b8 (diff)
basic tests passing
Diffstat (limited to 'src/olpc/datastore/model.py')
-rw-r--r--src/olpc/datastore/model.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/olpc/datastore/model.py b/src/olpc/datastore/model.py
index 746d727..f857487 100644
--- a/src/olpc/datastore/model.py
+++ b/src/olpc/datastore/model.py
@@ -183,7 +183,8 @@ class Content(object):
self._backingstore = backingstore
self._file = None
self._model = model
-
+ self._file = None
+
def __repr__(self):
return "<%s %s>" %(self.__class__.__name__,
self.properties)
@@ -251,12 +252,15 @@ class Content(object):
return None, None
def get_file(self):
- if not hasattr(self, "_file") or not self._file or \
- self._file.closed is True:
+ if not self._file or self._file.closed is True:
target, ext = self.suggestName()
try:
targetfile = self.backingstore._targetFile(self.id, target, ext)
- self._file = targetfile
+ if not targetfile:
+ self._file = None
+ return self._file
+
+ self._file = open(targetfile, "rw")
except OSError:
self._file = None
return self._file
@@ -266,8 +270,11 @@ class Content(object):
file = property(get_file, set_file)
@property
- def filename(self): return os.path.abspath(self.file.name)
-
+ def filename(self):
+ if self.file:
+ return os.path.abspath(self.file.name)
+ return ''
+
@property
def contents(self): return self.file.read()