[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30775] branches/soc-2010-leifandersen: 1.

Leif Andersen leif.a.andersen at gmail.com
Mon Jul 26 23:10:41 CEST 2010


Revision: 30775
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30775
Author:   leifandersen
Date:     2010-07-26 23:10:39 +0200 (Mon, 26 Jul 2010)

Log Message:
-----------
1.  Fixed a few big bugs in the standard image diff that crept through (pertaining to building single image tests).

2.  Started adding operators (and gui) to build the image tests from within blender...still no way to set the good copy of blender though.

Modified Paths:
--------------
    branches/soc-2010-leifandersen/release/scripts/op/tests_render.py
    branches/soc-2010-leifandersen/release/scripts/ui/space_tests.py
    branches/soc-2010-leifandersen/tests/render/run.py

Modified: branches/soc-2010-leifandersen/release/scripts/op/tests_render.py
===================================================================
--- branches/soc-2010-leifandersen/release/scripts/op/tests_render.py	2010-07-26 20:42:50 UTC (rev 30774)
+++ branches/soc-2010-leifandersen/release/scripts/op/tests_render.py	2010-07-26 21:10:39 UTC (rev 30775)
@@ -92,10 +92,88 @@
         wm.add_fileselect(self)
         return {'RUNNING_MODAL'}
 
+class TESTS_OT_render_build(bpy.types.Operator):
+    ''''''
+    bl_idname = "TESTS_OT_render_build"
+    bl_label = "Animation Render Test"
+
+    filename = StringProperty(name="File Name", description="File name used", maxlen= 1024, default= "")
+    filepath = StringProperty(name="File Path", description="Filepath used", maxlen= 1024, default= "")
+    directory = StringProperty(name="File Directory", description="File Directory used", maxlen= 1024, default= "")
+
+    def poll(self, context):
+        return True
+
+    def execute(self, context):
+        (directory, filename) = os.path.split(self.properties.filepath)
+        command = PYTHON_BIN + " " + IMAGEDIFF_PY + " --build-tests --image " + self.properties.filepath + " --blender-bin " + BLENDER_BIN
+        print(os.system(command))
+        tests.render.status = "Run"
+        return {'FINISHED'}
+
+    def invoke(self, context, event):
+        wm = context.manager
+        wm.add_fileselect(self)
+        return {'RUNNING_MODAL'}
+
+class TESTS_OT_render_all_build(bpy.types.Operator):
+    ''''''
+    bl_idname = "TESTS_OT_render_all_build"
+    bl_label = "Animation Render Test"
+
+    filename = StringProperty(name="File Name", description="File name used", maxlen= 1024, default= "")
+    filepath = StringProperty(name="File Path", description="Filepath used", maxlen= 1024, default= "")
+    directory = StringProperty(name="File Directory", description="File Directory used", maxlen= 1024, default= "")
+
+    def poll(self, context):
+        return True
+
+    def execute(self, context):
+        test_passed = True
+        (directory, filename) = os.path.split(self.properties.filepath)
+        for file in os.listdir(directory):
+            if file.find('.blend') != -1:
+                bpy.ops.tests.render_build(filepath=self.properties.filepath)
+            if test_passed and tests.render.status == "Not Run":
+                tests_passed = False
+        return {'FINISHED'}
+
+    def invoke(self, context,event):
+        wm = context.manager
+        wm.add_fileselect(self)
+        return {'RUNNING_MODAL'}
+
+class TESTS_OT_anim_build(bpy.types.Operator):
+    ''''''
+    bl_idname = "TESTS_OT_anim_build"
+    bl_label = "Animation Render Test"
+
+    filename = StringProperty(name="File Name", description="File name used", maxlen= 1024, default= "")
+    filepath = StringProperty(name="File Path", description="Filepath used", maxlen= 1024, default= "")
+    directory = StringProperty(name="File Directory", description="File Directory used", maxlen= 1024, default= "")
+
+    def poll(self, context):
+        return True
+
+    def execute(self, context):
+        (directory, filename) = os.path.split(self.properties.filepath)
+        command = PYTHON_BIN + " " + IMAGEDIFF_PY + " --build-tests --animation " + self.properties.filepath + " --blender-bin " + BLENDER_BIN
+        print(os.system(command))
+        tests.render.status = "Run"
+        return {'FINISHED'}
+
+    def invoke(self, context, event):
+        wm = context.manager
+        wm.add_fileselect(self)
+        return {'RUNNING_MODAL'}
+
 classes = [
     TESTS_OT_render,
     TESTS_OT_render_all,
     TESTS_OT_anim,
+    TESTS_OT_render_build,
+    TESTS_OT_render_all_build,
+    TESTS_OT_anim_build,
 ]
     
 def register():

Modified: branches/soc-2010-leifandersen/release/scripts/ui/space_tests.py
===================================================================
--- branches/soc-2010-leifandersen/release/scripts/ui/space_tests.py	2010-07-26 20:42:50 UTC (rev 30774)
+++ branches/soc-2010-leifandersen/release/scripts/ui/space_tests.py	2010-07-26 21:10:39 UTC (rev 30775)
@@ -42,6 +42,13 @@
         row.operator("RENDER_OT_render", text="Render")
         row = layout.row()
         row.label(text="Status: " + tests.render.status)
+        row = layout.row()
+        row.label(text="Build Tests")
+        row = layout.row()
+        row.operator("TESTS_OT_render_build", text="Image")
+        row.operator("TESTS_OT_render_all_build", text="All Images")
+        row = layout.row()
+        row.operator("TESTS_OT_anim_build", text="Animations")
 
 classes = [
     INFO_MT_tests,

Modified: branches/soc-2010-leifandersen/tests/render/run.py
===================================================================
--- branches/soc-2010-leifandersen/tests/render/run.py	2010-07-26 20:42:50 UTC (rev 30774)
+++ branches/soc-2010-leifandersen/tests/render/run.py	2010-07-26 21:10:39 UTC (rev 30775)
@@ -279,17 +279,21 @@
            test_path: the path for the output folder of the test when it's rendered'''
         self.name = os.path.split(blend_path)[1]
         self.blend_path = blend_path
-        for imagename in os.listdir(good_path):
-            if imagename.find('.png') != -1:
-                self.good_path_arr.append(os.path.join(good_path, imagename))
-        self.good_path_arr.sort()
-        self.mode = 'Image'
-        for imagename in self.good_path_arr:
-            (imagepath, blendname) = os.path.split(imagename)
-            self.test_path_arr.append(os.path.join(test_path, blendname))
-        if len(self.good_path_arr) > 0:
-            self.good_path = self.good_path_arr[0]
-        self.test_path = test_path
+        try:
+            for imagename in os.listdir(good_path):
+                if imagename.find('.png') != -1:
+                    self.good_path_arr.append(os.path.join(good_path, imagename))
+        except OSError:
+            self.good_path_arr.append(good_path)
+        finally:
+            self.good_path_arr.sort()
+            self.mode = 'Image'
+            for imagename in self.good_path_arr:
+                (imagepath, blendname) = os.path.split(imagename)
+                self.test_path_arr.append(os.path.join(test_path, blendname))
+            if len(self.good_path_arr) > 0:
+                self.good_path = self.good_path_arr[0]
+            self.test_path = test_path
             
     def generate_hash_animation(self, animation):
         '''Designed mainly for internal use, but can be used for external purposes if needed
@@ -794,10 +798,10 @@
         (directory, file) = os.path.split(arg)
         if options.image:
             case = ImageTestCase()
-            optional_cases.append((case, arg, os.path.join(directory, 'render', string.replace(file, '.blend', '_0001.png')), os.path.join(directory, 'output', string.replace(file, '.blend', ''))))
+            optional_cases.append((case, arg, os.path.join(directory, 'render', string.replace(file, '.blend', '_0001.png')), os.path.join(directory, 'output', string.replace(file, '.blend', '')), os.path.join(directory, 'render', string.replace(file, '.blend', ''))))
         else:
             case = AnimationTestCase()
-            optional_cases.append((case, arg, os.path.join(directory, string.replace(file, '.blend', '')), os.path.join(directory, 'output', string.replace(file, '.blend', ''))))
+            optional_cases.append((case, arg, os.path.join(directory, string.replace(file, '.blend', '')), os.path.join(directory, 'output', string.replace(file, '.blend', '')), os.path.join(directory, string.replace(file, '.blend', ''))))
 
     # Get Cases
     if len(args) == 0: # If there are no optional cases
@@ -820,7 +824,7 @@
                     cases.append(case[0])
         else: # If building tests
             for case in optional_cases:
-                case[0].setup_image(case[1], '', case[2])
+                case[0].setup_image(case[1], '', case[4])
                 cases.append(case[0])
                 
     cases.sort(key=lambda case: case.name)





More information about the Bf-blender-cvs mailing list