dcorking / google-wave-resources

Automatically exported from code.google.com/p/google-wave-resources
0 stars 0 forks source link

Bug: (Python)Input form elements cause robot to 500 #674

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
If you insert form input element into a wave next time an event is triggered 
the element object cannot be reconstructed properly 
and the robot dies with a 500.

The error is...

'label'
Traceback (most recent call last):
  File "/base/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 509, in __call__
    handler.post(*groups)
  File "/base/data/home/apps/wavetobot/1.340372317948709028/waveapi/appengine_robot_runner.py", line 82, in post
    json_response = self._robot.process_events(json_body)
  File "/base/data/home/apps/wavetobot/1.340372317948709028/waveapi/robot.py", line 356, in process_events
    event_wavelet = self._wavelet_from_json(parsed, pending_ops)
  File "/base/data/home/apps/wavetobot/1.340372317948709028/waveapi/robot.py", line 332, in _wavelet_from_json
    blips[blip_id] = blip.Blip(raw_blip_data, blips, pending_ops)
  File "/base/data/home/apps/wavetobot/1.340372317948709028/waveapi/blip.py", line 604, in __init__
    self._elements[int(elem)] = element.Element.from_json(json_elements[elem])
  File "/base/data/home/apps/wavetobot/1.340372317948709028/waveapi/element.py", line 76, in from_json
    return element_class.from_props(props)
  File "/base/data/home/apps/wavetobot/1.340372317948709028/waveapi/element.py", line 119, in from_props
    return Input(name=props['name'], value=props['value'], label=props['label'])
KeyError: 'label'

... the JSON for the form element does not contain the label key and is:

"148":{"type":"INPUT","properties":{"name":"phone_office","value":"01234567890",
"defaultValue":""}}

Setting the label argument when creating the form element has no effect. As a 
temporary fix I have modified my copy of the API...

element.py line 119 from:
return Input(name=props['name'], value=props['value'], label=props['label'])
...to...
return Input(name=props['name'], value=props['value'], label=props['name'])

It's by no way a good fix but gets it to hobble :)

Original issue reported on code.google.com by tom%wave...@gtempaccount.com on 7 Mar 2010 at 6:37

GoogleCodeExporter commented 9 years ago
Same as my issue 673 ;)
Regards, Uwe

Original comment by Uwe.Fetzer on 8 Mar 2010 at 10:33

GoogleCodeExporter commented 9 years ago
This was fixed in revision 23 of the client library. See changelog:
https://wave.google.com/wave/#restored:wave:googlewave.com!w%252BSgYrEnoLE

Original comment by pamela.fox on 11 Mar 2010 at 4:05