diff roundup/rest.py @ 5681:6457fd696a43

Handle bad property name in @fields/@attrs. Raise exception and provide useful message.
author John Rouillard <rouilj@ieee.org>
date Sat, 30 Mar 2019 00:19:37 -0400
parents f77209ddd579
children e8ac82b8d074
line wrap: on
line diff
--- a/roundup/rest.py	Fri Mar 29 23:57:13 2019 -0400
+++ b/roundup/rest.py	Sat Mar 30 00:19:37 2019 -0400
@@ -585,7 +585,13 @@
                 if len(f) == 1:
                     f=value.split(",")
                 for i in f:
-                    display_props[i] = class_obj.properties[i]
+                    try:
+                        display_props[i] = class_obj.properties[i]
+                    except KeyError as err:
+                        raise UsageError("Failed to find property '%s' "
+                                         "for class %s."%(i, class_name))
+
+                    
             else: # serve the filter purpose
                 prop = class_obj.getprops()[key]
                 # We drop properties without search permission silently
@@ -738,7 +744,10 @@
                 if len(f) == 1:
                     f=value.split(":")
                 for i in f:
-                    props[i] = class_obj.properties[i]
+                    try:
+                        props[i] = class_obj.properties[i]
+                    except KeyError as err:
+                        raise UsageError("Failed to find property '%s' for class %s."%(i, class_name))
             elif key == "@protected":
                 # allow client to request read only
                 # properties like creator, activity etc.

Roundup Issue Tracker: http://roundup-tracker.org/