summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--morphlib/builder2.py2
-rw-r--r--morphlib/savefile.py6
-rw-r--r--morphlib/savefile_tests.py8
3 files changed, 12 insertions, 4 deletions
diff --git a/morphlib/builder2.py b/morphlib/builder2.py
index a5f86e8d..2ae8785f 100644
--- a/morphlib/builder2.py
+++ b/morphlib/builder2.py
@@ -257,7 +257,7 @@ class ChunkBuilder(BuilderBase):
with self.local_artifact_cache.put_source_metadata(
self.artifact.source, self.artifact.cache_key,
'build-log') as log:
- log_name = log._savefile_filename
+ log_name = log.real_filename
self.run_commands(builddir, destdir, log)
except:
self.do_unmounts(mounted)
diff --git a/morphlib/savefile.py b/morphlib/savefile.py
index c0590667..9392f1a2 100644
--- a/morphlib/savefile.py
+++ b/morphlib/savefile.py
@@ -44,7 +44,7 @@ class SaveFile(file):
'''
def __init__(self, filename, *args, **kwargs):
- self._savefile_filename = filename
+ self.real_filename = filename
dirname = os.path.dirname(filename)
fd, self._savefile_tempname = tempfile.mkstemp(dir=dirname)
os.close(fd)
@@ -64,7 +64,7 @@ class SaveFile(file):
def close(self):
ret = file.close(self)
logging.debug('Rename temporary file %s to %s' %
- (self._savefile_tempname, self._savefile_filename))
- os.rename(self._savefile_tempname, self._savefile_filename)
+ (self._savefile_tempname, self.real_filename))
+ os.rename(self._savefile_tempname, self.real_filename)
return ret
diff --git a/morphlib/savefile_tests.py b/morphlib/savefile_tests.py
index 442a0779..63c80c9d 100644
--- a/morphlib/savefile_tests.py
+++ b/morphlib/savefile_tests.py
@@ -43,6 +43,14 @@ class SaveFileTests(unittest.TestCase):
def test_there_are_no_files_initially(self):
self.assertEqual(os.listdir(self.tempdir), [])
+ def test_sets_real_filename(self):
+ f = savefile.SaveFile(self.filename, 'w')
+ self.assertEqual(f.real_filename, self.filename)
+
+ def test_sets_name_to_temporary_name(self):
+ f = savefile.SaveFile(self.filename, 'w')
+ self.assertNotEqual(f.name, self.filename)
+
def test_saves_new_file(self):
f = savefile.SaveFile(self.filename, 'w')
f.write('foo')