changeset 517:6e38de6858c0

Make sure all tests get done in temporary directory, and `logs_dir` gets created there. Also tests that reference `logs_dir` should make it relative to the `env.path` See #329
author dfraser
date Fri, 13 Mar 2009 12:03:00 +0000
parents 2f3b7c17d3c3
children 18485105d1c3
files bitten/tests/master.py bitten/tests/model.py
diffstat 2 files changed, 52 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/bitten/tests/master.py
+++ b/bitten/tests/master.py
@@ -8,6 +8,7 @@
 # you should have received as part of this distribution. The terms
 # are also available at http://bitten.edgewall.org/wiki/License.
 
+import os
 import re
 import shutil
 from StringIO import StringIO
@@ -31,6 +32,11 @@
     def setUp(self):
         self.env = EnvironmentStub(enable=['trac.*', 'bitten.*'])
         self.env.path = tempfile.mkdtemp()
+        logs_dir = self.env.config.get("bitten", "logs_dir")
+        if os.path.isabs(logs_dir):
+            raise ValueError("Should not have absolute logs directory for temporary test")
+        logs_dir = os.path.join(self.env.path, logs_dir)
+        os.makedirs(logs_dir)
 
         PermissionSystem(self.env).grant_permission('hal', 'BUILD_EXEC')
 
--- a/bitten/tests/model.py
+++ b/bitten/tests/model.py
@@ -15,13 +15,19 @@
 from bitten.model import BuildConfig, TargetPlatform, Build, BuildStep, \
                          BuildLog, Report, schema
 import os
+import tempfile
 
 
 class BuildConfigTestCase(unittest.TestCase):
 
     def setUp(self):
         self.env = EnvironmentStub()
-        self.env.path = ''
+        self.env.path = tempfile.mkdtemp()
+        logs_dir = self.env.config.get("bitten", "logs_dir")
+        if os.path.isabs(logs_dir):
+            raise ValueError("Should not have absolute logs directory for temporary test")
+        logs_dir = os.path.join(self.env.path, logs_dir)
+        os.makedirs(logs_dir)
 
         db = self.env.get_db_cnx()
         cursor = db.cursor()
@@ -159,7 +165,12 @@
 
     def setUp(self):
         self.env = EnvironmentStub()
-        self.env.path = ''
+        self.env.path = tempfile.mkdtemp()
+        logs_dir = self.env.config.get("bitten", "logs_dir")
+        if os.path.isabs(logs_dir):
+            raise ValueError("Should not have absolute logs directory for temporary test")
+        logs_dir = os.path.join(self.env.path, logs_dir)
+        os.makedirs(logs_dir)
 
         db = self.env.get_db_cnx()
         cursor = db.cursor()
@@ -216,7 +227,12 @@
 
     def setUp(self):
         self.env = EnvironmentStub()
-        self.env.path = ''
+        self.env.path = tempfile.mkdtemp()
+        logs_dir = self.env.config.get("bitten", "logs_dir")
+        if os.path.isabs(logs_dir):
+            raise ValueError("Should not have absolute logs directory for temporary test")
+        logs_dir = os.path.join(self.env.path, logs_dir)
+        os.makedirs(logs_dir)
 
         db = self.env.get_db_cnx()
         cursor = db.cursor()
@@ -325,7 +341,12 @@
 
     def setUp(self):
         self.env = EnvironmentStub()
-        self.env.path = ''
+        self.env.path = tempfile.mkdtemp()
+        logs_dir = self.env.config.get("bitten", "logs_dir")
+        if os.path.isabs(logs_dir):
+            raise ValueError("Should not have absolute logs directory for temporary test")
+        logs_dir = os.path.join(self.env.path, logs_dir)
+        os.makedirs(logs_dir)
 
         db = self.env.get_db_cnx()
         cursor = db.cursor()
@@ -427,7 +448,12 @@
 
     def setUp(self):
         self.env = EnvironmentStub()
-        self.env.path = ''
+        self.env.path = tempfile.mkdtemp()
+        logs_dir = self.env.config.get("bitten", "logs_dir")
+        if os.path.isabs(logs_dir):
+            raise ValueError("Should not have absolute logs directory for temporary test")
+        logs_dir = os.path.join(self.env.path, logs_dir)
+        os.makedirs(logs_dir)
 
         db = self.env.get_db_cnx()
         cursor = db.cursor()
@@ -502,6 +528,9 @@
                        "VALUES (%s,%s,%s,%s)", (1, 'test', 'distutils', '1.log'))
         id = db.get_last_id(cursor, 'bitten_log')
         logs_dir = self.env.config.get("bitten", "logsdir", "log/bitten")
+        if os.path.isabs(logs_dir):
+            raise ValueError("Should not have absolute logs directory for temporary test")
+        logs_dir = os.path.join(self.env.path, logs_dir)
         full_file = os.path.join(logs_dir, "1.log")
         open(full_file, "w").writelines(["running tests\n", "tests failed\n"])
 
@@ -528,6 +557,9 @@
                        "VALUES (%s,%s,%s,%s)", (1, 'test', 'distutils', '1.log'))
         id = db.get_last_id(cursor, 'bitten_log')
         logs_dir = self.env.config.get("bitten", "logsdir", "log/bitten")
+        if os.path.isabs(logs_dir):
+            raise ValueError("Should not have absolute logs directory for temporary test")
+        logs_dir = os.path.join(self.env.path, logs_dir)
         full_file = os.path.join(logs_dir, "1.log")
         open(full_file, "w").writelines(["running tests\n", "tests failed\n"])
 
@@ -549,6 +581,9 @@
                        "VALUES (%s,%s,%s,%s)", (1, 'test', 'distutils', '1.log'))
         id = db.get_last_id(cursor, 'bitten_log')
         logs_dir = self.env.config.get("bitten", "logsdir", "log/bitten")
+        if os.path.isabs(logs_dir):
+            raise ValueError("Should not have absolute logs directory for temporary test")
+        logs_dir = os.path.join(self.env.path, logs_dir)
         full_file = os.path.join(logs_dir, "1.log")
         open(full_file, "w").writelines(["running tests\n", "tests failed\n"])
 
@@ -570,7 +605,12 @@
 
     def setUp(self):
         self.env = EnvironmentStub()
-        self.env.path = ''
+        self.env.path = tempfile.mkdtemp()
+        logs_dir = self.env.config.get("bitten", "logs_dir")
+        if os.path.isabs(logs_dir):
+            raise ValueError("Should not have absolute logs directory for temporary test")
+        logs_dir = os.path.join(self.env.path, logs_dir)
+        os.makedirs(logs_dir)
 
         db = self.env.get_db_cnx()
         cursor = db.cursor()
Copyright (C) 2012-2017 Edgewall Software