Ticket #87: html.py.diff

File html.py.diff, 2.6 KB (added by rochg, 3 years ago)

Resilience fixes to guard against no custom properties being defined

  • html.py

    old new  
    570596    def make_user_defined_rows(self): 
    571597        userDefRows = name = type = label = value = "" 
    572598        customBuildProperties = self.status.getCustomBuildProperties()    
    573         for properties in customBuildProperties: 
    574             name = properties['propertyName'] 
    575             type = properties['propertyType'] 
    576             label = properties['propertyLabel']                
    577             if type == 'radio':                
    578                 value = properties['groupValue'] 
    579                 field = "<input type=" + "\'" + type + "\'" + "name=" + "\'" + \ 
    580                                 name + "\'" + "value=" + "\'" + value + "\'" + " />" 
    581             else: 
    582                 field = "<input type=" + "\'" + type + "\'" +  \ 
    583                                 "name=" + "\'" + name + "\'" + " />" 
     599        if None != customBuildProperties: 
     600            for properties in customBuildProperties: 
     601                name = properties['propertyName'] 
     602                type = properties['propertyType'] 
     603                label = properties['propertyLabel']                
     604                if type == 'radio':                
     605                    value = properties['groupValue'] 
     606                    field = "<input type=" + "\'" + type + "\'" + "name=" + "\'" + \ 
     607                        name + "\'" + "value=" + "\'" + value + "\'" + " />" 
     608                else: 
     609                    field = "<input type=" + "\'" + type + "\'" +  \ 
     610                        "name=" + "\'" + name + "\'" + " />" 
    584611 
    585             userDefRows += make_row(label, field) 
    586             name = type = label = value = "" 
     612                    userDefRows += make_row(label, field) 
     613                    name = type = label = value = "" 
    587614 
    588615        return userDefRows 
    589616 
     
    596623        # Custom properties. 
    597624        custom_props = {}           
    598625        forceBuildProperties = self.status.getCustomBuildProperties()    
    599         for dict in forceBuildProperties: 
    600             for key, value in dict.iteritems():              
    601                if key == 'propertyName': 
    602                    custom_props[value] = request.args.get(value, [""])[0] 
     626        if None != forceBuildProperties: 
     627            for dict in forceBuildProperties: 
     628                for key, value in dict.iteritems():              
     629                    if key == 'propertyName': 
     630                        custom_props[value] = request.args.get(value, [""])[0] 
    603631 
    604632        r = "The web-page 'force build' button was pressed by '%s': %s\n" \ 
    605633            % (name, reason)