Revision: 30094
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30094
Author:   leifandersen
Date:     2010-07-07 21:35:39 +0200 (Wed, 07 Jul 2010)

Log Message:
-----------
1.  The -v (vorbose) flag actually works, making the output look much nicer.

Modified Paths:
--------------
    branches/soc-2010-leifandersen/tests/render/run.py

Modified: branches/soc-2010-leifandersen/tests/render/run.py
===================================================================
--- branches/soc-2010-leifandersen/tests/render/run.py  2010-07-07 19:11:55 UTC 
(rev 30093)
+++ branches/soc-2010-leifandersen/tests/render/run.py  2010-07-07 19:35:39 UTC 
(rev 30094)
@@ -5,7 +5,11 @@
 import os
 import sys
 import string
+import subprocess
 
+from subprocess import Popen, PIPE
+
+
 BLENDER_BIN = "blender"
 RUN_ANIMATIONS = False
 RUN_IMAGES = True
@@ -56,8 +60,16 @@
     def render_test(self):
         '''Renders a single image of the first frame of the blend file.
             Also changes output_path slightly'''
-        command = BLENDER_BIN + " -b " + self.blend_path + " -o " + 
self.test_path + "_#### -F PNG -x 1 -f 1"
-        os.system(command)
+
+        # The old way of running the command: TODO, remove when certain 
Popen() works.
+        # command = BLENDER_BIN + " -b " + self.blend_path + " -o " + 
self.test_path + "_#### -F PNG -x 1 -f 1"
+        # os.system(command)
+
+        p = Popen([BLENDER_BIN, '-b', self.blend_path, '-o', self.test_path + 
'_####', '-F', 'PNG', '-x', '1', '-f', '1'], stdout=PIPE, stderr=PIPE, 
stdin=PIPE)
+        p.wait()
+        if VERBOSE:
+            print p.communicate()[0]
+
         self.test_path += '_0001.png'
         try:
             self.test_image = Image.open(self.test_path)
@@ -120,6 +132,7 @@
     message = ""
 
     def __init__(self, blend_path, good_path, test_path):
+        ''''''
         self.name = os.path.split(blend_path)[1]
         self.blend_path = blend_path
         self.good_path = []
@@ -144,9 +157,15 @@
 
     def render_test(self):
         ''''''
-        command = BLENDER_BIN + " -b " + self.blend_path + " -o " + 
string.replace(self.test_path[0], '_0001.png', '') + "_#### -F PNG -x 1 -a"
-        os.system(command)
+        # The old way, TODO, remove when certain Popen() works.
+        # command = BLENDER_BIN + " -b " + self.blend_path + " -o " + 
string.replace(self.test_path[0], '_0001.png', '') + "_#### -F PNG -x 1 -a"
+        # os.system(command)
 
+        p = Popen([BLENDER_BIN, '-b', self.blend_path, '-o', 
string.replace(self.test_path[0], '_0001.png', '') + '_####', '-F', 'PNG', 
'-x', '1', '-a'], stdout=PIPE, stderr=PIPE, stdin=PIPE)
+        p.wait()
+        if VERBOSE:
+            print p.communicate()[0]
+
         try:
             self.test_image = []
             for imagename in self.test_path:
@@ -163,6 +182,7 @@
             self.message = "Failed to render"
 
     def setup_test(self):
+        ''''''
         if self.test_image != None:
             self.passed_arr = []
             self.diff_sum = []
@@ -204,6 +224,7 @@
                 self.passed = False
 
     def save_diff(self, output_path):
+        ''''''
         if self.diff_image != None:
             self.diff_path = []
             (diff_directory, diff_file) = os.path.split(output_path)
@@ -216,6 +237,7 @@
 def get_cases(folder):
     '''Returns all of the blend files in the folder'''
     cases = []
+    print ''
     for filename in os.listdir(sys.path[0]):
         if filename.find('.blend') != -1:
             blend_path = os.path.join(sys.path[0],filename)
@@ -362,15 +384,14 @@
 
     # Run cases
     for test_case in cases:
-        print test_case.name
-        if not VERBOSE:
-            sys.stdout = LOG
+        print test_case.name + '...',
         test_case.render_test()
         test_case.setup_test()
         test_case.save_diff(os.path.join(HTML_OUTPUT, 'output', 
string.replace(test_case.name, '.blend', '_diff.png')))
-        if not VERBOSE:
-            sys.stdout = SAVEOUT
-        print test_case.passed
+        if test_case.passed:
+            print 'OK'
+        else:
+            print 'FAILED'
 
     # Output Result
     console_output(cases)


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to