r16332 - gnucash/branches/dogtail/src/test-dogtail - add recocile dialog and reconcile frame
Ahmed Sayed
asayed at cvs.gnucash.org
Fri Jul 20 08:16:16 EDT 2007
Author: asayed
Date: 2007-07-20 08:16:15 -0400 (Fri, 20 Jul 2007)
New Revision: 16332
Trac: http://svn.gnucash.org/trac/changeset/16332
Modified:
gnucash/branches/dogtail/src/test-dogtail/GnuCash.py
Log:
add recocile dialog and reconcile frame
Modified: gnucash/branches/dogtail/src/test-dogtail/GnuCash.py
===================================================================
--- gnucash/branches/dogtail/src/test-dogtail/GnuCash.py 2007-07-19 22:34:03 UTC (rev 16331)
+++ gnucash/branches/dogtail/src/test-dogtail/GnuCash.py 2007-07-20 12:16:15 UTC (rev 16332)
@@ -1144,24 +1144,74 @@
self.__dict__[name]=value
class ReconcileFrame(Node):
-
+
+ class FundsTable(Node):
+ """ Wrapper for table in Reconcile Frame """
+ def __init__(self, initializer):
+ Node.__init__(self, initializer)
+ self.row_table_cell = 0
+ self.column_table_cell = 0
+
+ def __setattr__(self, name, value):
+ if name == 'row':
+ self.row_table_cell = value
+ elif name == 'column':
+ self.column_table_cell = value
+ else:
+ self.__dict__[name]=value
+
+ def click(self, row=None, column=None):
+ """ Another row - column based controls i found no action assigned with this table cell Only Activate which does not work because dogtail does not detect the position correctly """
+ if row == None:
+ row = self.row_table_cell
+ if column == None:
+ column = self.column_table_cell
+ table_cell_list = self.findChildren\
+ (predicate.GenericPredicate(roleName='table cell'), recursive=True)
+ cell = table_cell_list[(row*4)+column]
+ # when click i add double the cell hieght size[1] because dogtail doesn't detect the position correctly
+ # it detects it above its rendered position
+ dogtail.rawinput.click(cell.position[0], cell.position[1]+cell.size[1]*2)
+
def __init__(self, initializer):
config.childrenLimit = 1500
Node.__init__(self, initializer)
-# self.funds_out_panel = \
- # self.findChildren(predicate.GenericPredicate(roleName='panel'))
- # for item in self.funds_out_panel:
- # print item
- #self.fund_in_panel = \
- #self.findChild(predicate.GenericPredicate(roleName='panel', name='Funds In'))
+ self.funds_out_panel = \
+ self.findChild(predicate.GenericPredicate(roleName='panel', name='Funds Out'))
+ self.funds_out_table = \
+ self.funds_out_panel.findChild(predicate.GenericPredicate(roleName='table'))
+ self.funds_out = self.FundsTable(self.funds_out_table)
+ self.funds_in_panel = \
+ self.findChild(predicate.GenericPredicate(roleName='panel', name='Funds In'))
+ self.funds_in_table = \
+ self.funds_in_panel.findChild(predicate.GenericPredicate(roleName='table'))
+ self.funds_in = self.FundsTable(self.funds_in_table)
+ def __setattr__(self, name, value):
+ if name =='ending_balance':
+ self.ending_balance_txt.text = value
+ elif name == 'include_subaccount':
+ if value and not self.include_subaccount_cb.checked:
+ self.include_subaccount_cb.click()
+ elif not value and self.include_subaccount_cb.checked:
+ self.include_subaccount_cb.click()
+ else:
+ self.__dict__[name]=value
+
if __name__ == '__main__':
+ """ This main Changes Frequently because it used to test most recent added widget """
+ """ Currently i use it to test the new wrapper for Reconcile Frame """
config.childrenLimit = 1500
gnucash = GnuCashApp()
- asset_reconcile = gnucash.findChild(predicate.GenericPredicate(roleName='frame'))
- reconcileFrame = ReconcileFrame(asset_reconcile)
- panels = asset_reconcile.findChildren(predicate.GenericPredicate(roleName='panel'))
- reconcileFrame.dump()
- for item in panels:
- print item
+ asset_reconcile = gnucash.findChildren(predicate.GenericPredicate(roleName='frame'))
+ for f in asset_reconcile:
+ result = re.search(". Reconcile", f.name)
+ if (result != None):
+ asset_rec = f
+ reconcileFrame = ReconcileFrame(asset_rec)
+ tabel_cell_list = reconcileFrame.funds_out_table.findChildren(predicate.GenericPredicate(roleName='table cell'), recursive=True)
+ f = reconcileFrame.funds_out
+ f.row = 2
+ f.column = 1
+ f.click()
More information about the gnucash-changes
mailing list