Bug 632144 - Winfroms Strongwind test cause "no attribute ORBit" error when close the frame
Summary: Winfroms Strongwind test cause "no attribute ORBit" error when close the frame
Status: CONFIRMED
Alias: None
Product: UI Automation
Classification: Mono
Component: Winforms - General (show other bugs)
Version: Unspecified
Hardware: Other Other
: P1 - Urgent : Major
Target Milestone: ---
Assignee: Michael Gorse
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-08-18 02:55 UTC by calen chen
Modified: 2010-09-06 06:20 UTC (History)
1 user (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
Strongwind patch. (4.18 KB, patch)
2010-08-18 09:02 UTC, Michael Gorse
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description calen chen 2010-08-18 02:55:59 UTC
upgrade to 2.0.95 internal version

REPRO:

1. Run uia2atk/test/testers/winforms/label-regresion.py, the last step is using altF4 of strongwind 'Frame' class to close the application frame

RESULTS:

Action: In the Button_Label_LinkLabel controls window, press <Alt>F4.
[Error 10:39:58.960] [UiaDbusBridge.RaiseAutomationEvent] Inconsistent provider -> wrapper mapping state
[Error 10:39:58.960] [UiaDbusBridge.RaiseAutomationEvent] Inconsistent provider -> wrapper mapping state
Expected result: The frame disappears.
Traceback (most recent call last):
  File "./winforms/label-regresion.py", line 81, in <module>
    lFrame.quit()
  File "/A11y/uia2atk-test/testers/winforms/label/labelframe.py", line 61, in quit
    self.altF4()
  File "/usr/lib/python2.6/site-packages/strongwind/accessibles.py", line 750, in altF4
    if assertClosed: self.assertClosed()
  File "/usr/lib/python2.6/site-packages/strongwind/accessibles.py", line 764, in assertClosed
    assert utils.retryUntilTrue(closed)
  File "/usr/lib/python2.6/site-packages/strongwind/utils.py", line 98, in retryUntilTrue
    if func(*args,**kargs): return True
  File "/usr/lib/python2.6/site-packages/strongwind/accessibles.py", line 760, in closed
    except (LookupError, KeyError, pyatspi.ORBit.CORBA.COMM_FAILURE):
AttributeError: 'module' object has no attribute 'ORBit'

EXPECTED RESULTS:

doesn't appear the error

COMMENTS:

I would like to make it P1, it cause all of Winforms test failing.
Comment 1 Michael Gorse 2010-08-18 09:02:29 UTC
Created attachment 383696 [details]
Strongwind patch.

Sent this to the Strongwind maintainers for review.
Comment 2 calen chen 2010-09-06 06:20:02 UTC
Hey Mike,

When I run Winforms test in openSUSE11.3 with the strongwind pacth, I got another error, seems 'dbus.exceptions.DBusException' doesn't works in try.....except...., would you please help to take a look again? thanks!

You can reproduce it by running uia2atk/test/testers/winforms/button-regression.py, the error happens when a new dialog appear or dialog and frame closed.

ERROR:dbus.connection:Exception in handler for D-Bus signal:
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/dbus/connection.py", line 214, in maybe_handle_message
    self._handler(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/cache.py", line 195, in _children_changed_handler
    app._children_changed_handler(minor, detail1, detail2, any_data, app, interface, sender, member, path)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/cache.py", line 291, in _children_changed_handler
    item.children.remove (any_data)
ValueError: list.remove(x): x not in list
ERROR:dbus.connection:Exception in handler for D-Bus signal:
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/dbus/connection.py", line 214, in maybe_handle_message
    self._handler(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/cache.py", line 195, in _children_changed_handler
    app._children_changed_handler(minor, detail1, detail2, any_data, app, interface, sender, member, path)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/cache.py", line 291, in _children_changed_handler
    item.children.remove (any_data)
ValueError: list.remove(x): x not in list