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

Leif Andersen leif.a.andersen at gmail.com
Sun Jun 27 23:48:10 CEST 2010


Revision: 29747
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29747
Author:   leifandersen
Date:     2010-06-27 23:48:10 +0200 (Sun, 27 Jun 2010)

Log Message:
-----------
1.  Moved properties_tests.py to space_tests.py, taht way the Tests gui is added

2.  Implemented a working version of the render test operator.  Although it's still a bit brittle.  To use:

a.  copy the piltest.py folder to the default directory python uses

b.  Select Tests->Render, and in the tests/render folder, click on the sample blend, and select it.

You can view the output.  (Note that this requires python 2.x with PIL installed).
(I will soon changed it so you don't need to have PILTEST in your default directory)

3.  Moved Pdiff to the extern folder.

Modified Paths:
--------------
    branches/soc-2010-leifandersen/extern/CMakeLists.txt
    branches/soc-2010-leifandersen/release/scripts/op/tests_render.py
    branches/soc-2010-leifandersen/tests/CMakeLists.txt

Added Paths:
-----------
    branches/soc-2010-leifandersen/extern/perceptualdiff/
    branches/soc-2010-leifandersen/release/scripts/ui/space_tests.py
    branches/soc-2010-leifandersen/tests/piltest.py
    branches/soc-2010-leifandersen/tests/render/allselect.blend
    branches/soc-2010-leifandersen/tests/render/anim/
    branches/soc-2010-leifandersen/tests/render/output/
    branches/soc-2010-leifandersen/tests/render/output/allselect.blend_0001.png
    branches/soc-2010-leifandersen/tests/render/render/
    branches/soc-2010-leifandersen/tests/render/render/allselect.blend.png

Removed Paths:
-------------
    branches/soc-2010-leifandersen/release/scripts/ui/properties_tests.py
    branches/soc-2010-leifandersen/tests/perceptualdiff/

Modified: branches/soc-2010-leifandersen/extern/CMakeLists.txt
===================================================================
--- branches/soc-2010-leifandersen/extern/CMakeLists.txt	2010-06-27 21:35:31 UTC (rev 29746)
+++ branches/soc-2010-leifandersen/extern/CMakeLists.txt	2010-06-27 21:48:10 UTC (rev 29747)
@@ -49,4 +49,5 @@
 #-----------------------------------------------------------------------------
 if(WITH_TESTS)
 	ADD_SUBDIRECTORY(gtest-1.5.0)
+	# ADD_SUBDIRECTORY(perceptualdiff)
 ENDIF(WITH_TESTS)

Copied: branches/soc-2010-leifandersen/extern/perceptualdiff (from rev 29598, branches/soc-2010-leifandersen/tests/perceptualdiff)

Modified: branches/soc-2010-leifandersen/release/scripts/op/tests_render.py
===================================================================
--- branches/soc-2010-leifandersen/release/scripts/op/tests_render.py	2010-06-27 21:35:31 UTC (rev 29746)
+++ branches/soc-2010-leifandersen/release/scripts/op/tests_render.py	2010-06-27 21:48:10 UTC (rev 29747)
@@ -1,10 +1,21 @@
+import os
+import sys
 import bpy
 from bpy.props import *
 
+BLENDER_BIN = sys.argv[0]
+
 # Probably will be rewritten in C
-def compareimage(image1, image2):
-    pass
+def compare_image(image1, image2):
+    command = "python piltest.py " + image1 + " " + image2
+    print(os.system(command))
 
+def render(path):
+    (directory, filename) = os.path.split(path)
+    command = BLENDER_BIN + " -b " + path + " -o " + directory + os.path.sep + "output" + os.path.sep + filename + "_#### -F PNG -x 1 -f 1"
+    os.system(command)
+    return (directory + os.path.sep + "output" + os.path.sep + filename + "_0001.png")
+
 class TESTS_OT_render(bpy.types.Operator):
     ''''''
     bl_idname = "TESTS_OT_render"
@@ -24,6 +35,10 @@
         return True
 
     def execute(self, context):
+        (directory, filename) = os.path.split(self.properties.filepath)
+        image1 = directory + os.path.sep + "render" + os.path.sep + filename + ".png"
+        image2 = render(self.properties.filepath)
+        compare_image(image1, image2)
         return {'FINISHED'}
 
     def invoke(self, context, event):
@@ -57,4 +72,4 @@
         bpy.types.unregister(i)
 
 if __name__ == "__main__":
-    register()
+    register()
\ No newline at end of file

Deleted: branches/soc-2010-leifandersen/release/scripts/ui/properties_tests.py
===================================================================
--- branches/soc-2010-leifandersen/release/scripts/ui/properties_tests.py	2010-06-27 21:35:31 UTC (rev 29746)
+++ branches/soc-2010-leifandersen/release/scripts/ui/properties_tests.py	2010-06-27 21:48:10 UTC (rev 29747)
@@ -1,35 +0,0 @@
-import bpy
-
-class INFO_MT_tests(bpy.types.Menu):
-    ''''''
-    bl_idname = "INFO_MT_tests"
-    bl_label = "Tests"
-
-    def draw(self, context):
-        layout = self.layout
-#        layout.operator_context = 'EXEC_AREA'
-#        layout.operator_context = 'INVOKE_AREA'
-        layout.operator("TESTS_OT_render", text="Render Test")
-        layout.operator("TESTS_OT_render_all", text="All Render Tests")
-        layout.operator("RENDER_OT_render", text="Render")
-
-
-classes = [
-    INFO_MT_tests,
-]
-
-menu_func = (lambda self, context: self.layout.menu("INFO_MT_tests"))
-
-
-def register():
-    for i in classes:
-        bpy.types.register(i)
-    bpy.types.INFO_HT_header.append(menu_func)
-#    bpy.types.INFO_MT_help.append(menu_func)
-
-def unregister():
-    for i in classes:
-        bpy.types.unregister(i)
-
-if __name__ == "__main__":
-    register()
\ No newline at end of file

Added: branches/soc-2010-leifandersen/release/scripts/ui/space_tests.py
===================================================================
--- branches/soc-2010-leifandersen/release/scripts/ui/space_tests.py	                        (rev 0)
+++ branches/soc-2010-leifandersen/release/scripts/ui/space_tests.py	2010-06-27 21:48:10 UTC (rev 29747)
@@ -0,0 +1,35 @@
+import bpy
+
+class INFO_MT_tests(bpy.types.Menu):
+    ''''''
+    bl_idname = "INFO_MT_tests"
+    bl_label = "Tests"
+
+    def draw(self, context):
+        layout = self.layout
+#        layout.operator_context = 'EXEC_AREA'
+#        layout.operator_context = 'INVOKE_AREA'
+        layout.operator("TESTS_OT_render", text="Render Test")
+        layout.operator("TESTS_OT_render_all", text="All Render Tests")
+        layout.operator("RENDER_OT_render", text="Render")
+
+
+classes = [
+    INFO_MT_tests,
+]
+
+menu_func = (lambda self, context: self.layout.menu("INFO_MT_tests"))
+
+
+def register():
+    for i in classes:
+        bpy.types.register(i)
+    bpy.types.INFO_HT_header.append(menu_func)
+#    bpy.types.INFO_MT_help.append(menu_func)
+
+def unregister():
+    for i in classes:
+        bpy.types.unregister(i)
+
+if __name__ == "__main__":
+    register()
\ No newline at end of file

Modified: branches/soc-2010-leifandersen/tests/CMakeLists.txt
===================================================================
--- branches/soc-2010-leifandersen/tests/CMakeLists.txt	2010-06-27 21:35:31 UTC (rev 29746)
+++ branches/soc-2010-leifandersen/tests/CMakeLists.txt	2010-06-27 21:48:10 UTC (rev 29747)
@@ -26,4 +26,3 @@
 ENABLE_TESTING()
 ADD_SUBDIRECTORY(gtest)
 ADD_SUBDIRECTORY(pyunit)
-#ADD_SUBDIRECTORY(perceptualdiff)

Added: branches/soc-2010-leifandersen/tests/piltest.py
===================================================================
--- branches/soc-2010-leifandersen/tests/piltest.py	                        (rev 0)
+++ branches/soc-2010-leifandersen/tests/piltest.py	2010-06-27 21:48:10 UTC (rev 29747)
@@ -0,0 +1,40 @@
+import Image
+import unittest
+import sys
+
+class TestImage(unittest.TestCase):
+    def setUp(self):
+        pass
+
+    def test_image(self):
+        if len(sys.argv) < 3:
+            self.fail("Please don't use this script")
+        image_path1 = sys.argv[1]
+        image_path2 = sys.argv[2]
+        im1 = Image.open(image_path1)
+        im2 = Image.open(image_path2)
+
+        im1_red = im1_green = im1_blue = im2_red = im2_green = im2_blue = 0
+
+        self.assertEquals(im1.size, im2.size)
+        for i in range(0, im1.size[0]):
+            for j in range(0, im1.size[1]):
+                im1_red+=im1.getpixel((i,j))[0]
+                im1_green+=im1.getpixel((i,j))[1]
+                im1_blue+=im1.getpixel((i,j))[2]
+                im2_red+=im2.getpixel((i,j))[0]
+                im2_green+=im2.getpixel((i,j))[1]
+                im2_blue+=im2.getpixel((i,j))[2]
+
+        self.assertEquals(im1_red, im2_red)
+        self.assertEquals(im1_green, im2_green)
+        self.assertEquals(im1_blue, im2_blue)
+
+
+def suite():
+    return unittest.TestSuite([
+unittest.TestLoader().loadTestsFromTestCase(TestImage),
+])
+
+if __name__ == "__main__":
+    unittest.TextTestRunner(verbosity=2).run(suite())

Added: branches/soc-2010-leifandersen/tests/render/allselect.blend
===================================================================
(Binary files differ)


Property changes on: branches/soc-2010-leifandersen/tests/render/allselect.blend
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/soc-2010-leifandersen/tests/render/output/allselect.blend_0001.png
===================================================================
(Binary files differ)


Property changes on: branches/soc-2010-leifandersen/tests/render/output/allselect.blend_0001.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/soc-2010-leifandersen/tests/render/render/allselect.blend.png
===================================================================
(Binary files differ)


Property changes on: branches/soc-2010-leifandersen/tests/render/render/allselect.blend.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream





More information about the Bf-blender-cvs mailing list