[Bf-blender-cvs] [b5b34bc2c0a] master: Tests: Avoid access globals from abstract base class

Sergey Sharybin noreply at git.blender.org
Fri Mar 2 11:23:16 CET 2018


Commit: b5b34bc2c0ae4004bd4f04a4f46a85f347a92214
Author: Sergey Sharybin
Date:   Fri Mar 2 11:16:59 2018 +0100
Branches: master
https://developer.blender.org/rBb5b34bc2c0ae4004bd4f04a4f46a85f347a92214

Tests: Avoid access globals from abstract base class

Delegate functionality to subclasses, assert when subclasses didn't do
job the are supposed to do.

Thanks Sybren for pointing to a proper solution.

===================================================================

M	tests/python/modules/test_utils.py

===================================================================

diff --git a/tests/python/modules/test_utils.py b/tests/python/modules/test_utils.py
index 489f36c913f..6ca498d8cdf 100755
--- a/tests/python/modules/test_utils.py
+++ b/tests/python/modules/test_utils.py
@@ -58,11 +58,10 @@ def with_tempdir(wrapped):
 class AbstractBlenderRunnerTest(unittest.TestCase):
     """Base class for all test suites which needs to run Blender"""
 
-    @classmethod
-    def setUpClass(cls):
-        global args
-        cls.blender = args.blender
-        cls.testdir = pathlib.Path(args.testdir)
+    # Set in a subclass
+    blender: pathlib.Path = None
+    testdir: pathlib.Path = None
+    
 
     def run_blender(self, filepath: str, python_script: str, timeout: int=300) -> str:
         """Runs Blender by opening a blendfile and executing a script.
@@ -73,6 +72,9 @@ class AbstractBlenderRunnerTest(unittest.TestCase):
         :param timeout: in seconds
         """
 
+        assert self.blender, "Path to Blender binary is to be set in setUpClass()"
+        assert self.testdir, "Path to tests binary is to be set in setUpClass()"
+
         blendfile = self.testdir / filepath
 
         command = (



More information about the Bf-blender-cvs mailing list