selectors.py
changeset 2293 7ded2a1416e4
parent 2181 94ca417b9b07
parent 2274 885873dc4361
child 2381 caad2367d940
equal deleted inserted replaced
2235:d5987f75c97c 2293:7ded2a1416e4
   480 
   480 
   481     @lltrace
   481     @lltrace
   482     def __call__(self, cls, req, *args, **kwargs):
   482     def __call__(self, cls, req, *args, **kwargs):
   483         score = 0
   483         score = 0
   484         for param in self.expected:
   484         for param in self.expected:
   485             val = req.form.get(param)
   485             if not param in req.form:
   486             if not val:
       
   487                 return 0
   486                 return 0
   488             score += 1
   487             score += 1
   489         return len(self.expected)
   488         return len(self.expected)
   490 
   489 
   491 
   490 
   619         try:
   618         try:
   620             etype = req.form['etype']
   619             etype = req.form['etype']
   621         except KeyError:
   620         except KeyError:
   622             try:
   621             try:
   623                 etype = kwargs['etype']
   622                 etype = kwargs['etype']
       
   623             except KeyError:
       
   624                 return 0
       
   625         else:
       
   626             # only check this is a known type if etype comes from req.form,
       
   627             # else we want the error to propagate
       
   628             try:
       
   629                 etype = cls.vreg.case_insensitive_etypes[etype.lower()]
       
   630                 req.form['etype'] = etype
   624             except KeyError:
   631             except KeyError:
   625                 return 0
   632                 return 0
   626         return self.score_class(cls.vreg.etype_class(etype), req)
   633         return self.score_class(cls.vreg.etype_class(etype), req)
   627 
   634 
   628 
   635