On 05/09/2015 07:36 PM, Ralph Bean wrote:
And add some comments to this section so that future readers will understand
all the gymnastics.
---
  www/lib/kojiweb/util.py | 8 +++++++-
  1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/www/lib/kojiweb/util.py b/www/lib/kojiweb/util.py
index 6610beb..7f7b578 100644
--- a/www/lib/kojiweb/util.py
+++ b/www/lib/kojiweb/util.py
@@ -463,10 +463,16 @@ def taskScratchClass(task_object):
      """ Return a css class indicating whether or not this task is a scratch
      build.
      """
+    # Here, we try to figure out if this is supposed to be a scratch task based
+    # on this 'request' list attached to the task object.  It's hard to know
+    # exactly what's in it, because it's an unstructured list.  Different kinds
+    # of tasks stuff different things in it in different places.

Sorry I hadn't gotten around to reviewing the earlier patch.

If you're going to dig through the task request, you should most likely be checking the task method first. Checking for a minimum request length is not really a sufficient check.

Every task method has its own signature, some of which have changed over time.

      request = task_object['request']
      if len(request) >= 3:
          opts = request[2]
-        if opts and opts.get('scratch'):
+        # This is tough, because "opts" could be a one of a number of different
+        # things.  A dict, a bool, None, etc..
+        if hasattr(opts, 'get') and opts.get('scratch'):
              return "scratch"
      return ""



--
buildsys mailing list
buildsys@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/buildsys

Reply via email to