[Piglit] [patch v3 03/15] framework/glsl_parser_test.py: Split more out of the constructor

Dylan Baker baker.dylan.c at gmail.com
Mon Jul 28 17:34:13 PDT 2014


This splits the creation of the command to be passed to super() into a
private method. This change results in more readable code.

Signed-off-by: Dylan Baker <baker.dylan.c at gmail.com>
---
 framework/glsl_parser_test.py | 59 ++++++++++++++++++++++++++-----------------
 1 file changed, 36 insertions(+), 23 deletions(-)

diff --git a/framework/glsl_parser_test.py b/framework/glsl_parser_test.py
index ddf0aba..157412f 100644
--- a/framework/glsl_parser_test.py
+++ b/framework/glsl_parser_test.py
@@ -88,29 +88,42 @@ class GLSLParserTest(PiglitTest):
         with open(filepath, 'r') as testfile:
             text_io = self.__parser(testfile, filepath)
 
-            config = ConfigParser.SafeConfigParser(
-                defaults={'require_extensions': '', 'check_link': 'false'})
-
-            # Verify that the config was valid
-            text = text_io.getvalue()
-            text_io.close()
-            config.readfp(StringIO(text))
-
-            for opt in ['expect_result', 'glsl_version']:
-                if not config.has_option('config', opt):
-                    raise GLSLParserException("Missing required section {} "
-                                              "from config".format(opt))
-
-            # Create the command and pass it into a PiglitTest()
-            command = ['glslparsertest',
-                       filepath,
-                       config.get('config', 'expect_result'),
-                       config.get('config', 'glsl_version')]
-            if config.get('config', 'check_link').lower() == 'true':
-                command.append('--check-link')
-            command.extend(config.get('config', 'require_extensions').split())
-
-            super(GLSLParserTest, self).__init__(command, run_concurrent=True)
+        command = self.__get_command(text_io, filepath)
+        super(GLSLParserTest, self).__init__(command, run_concurrent=True)
+
+    def __get_command(self, text_io, filepath):
+        """ Create the command argument to pass to super()
+
+        This private helper creates a configparser object, then reads in the
+        provided config (from self.__parser), and tests for required options
+        that must be provided. If it does not find them it raises an exception.
+        It then crafts a command which is returned, and ultimately passed to
+        super()
+
+        """
+        config = ConfigParser.SafeConfigParser(
+            defaults={'require_extensions': '', 'check_link': 'false'})
+
+        # Verify that the config was valid
+        text = text_io.getvalue()
+        text_io.close()
+        config.readfp(StringIO(text))
+
+        for opt in ['expect_result', 'glsl_version']:
+            if not config.has_option('config', opt):
+                raise GLSLParserException("Missing required section {} "
+                                          "from config".format(opt))
+
+        # Create the command and pass it into a PiglitTest()
+        command = ['glslparsertest',
+                   filepath,
+                   config.get('config', 'expect_result'),
+                   config.get('config', 'glsl_version')]
+        if config.get('config', 'check_link').lower() == 'true':
+            command.append('--check-link')
+        command.extend(config.get('config', 'require_extensions').split())
+
+        return command
 
     def __parser(self, testfile, filepath):
         """ Private helper that parses the config file
-- 
2.0.2



More information about the Piglit mailing list