# -*- coding: utf-8 -*- import dogtail.tc from dogtail import tree from dogtail.procedural import * from dogtail.utils import screenshot from dogtail.predicate import GenericPredicate import os import signal from lliurextest import core class LibreofficeTest(core.BaseTest): def __init__(self,rel_path): core.BaseTest.__init__(self,rel_path) def close_recovery_dialog(self): loffice = tree.root.application('soffice') if loffice.children[0].roleName == 'dialog': close_button_list = loffice.findChildren(GenericPredicate(roleName="push button")) for x in close_button_list: if x.name.decode('utf-8') == u'Comença la recuperació >': x.click() x.click() def test_language_valencian(self): loffice = tree.root.application('soffice') menu_bar = loffice.findChildren(GenericPredicate(roleName='menu bar'))[-1] fitxer_menu = None for x in menu_bar.children: if x.name == 'Fitxer': fitxer_menu = x break black_list_items = ['surt'] white_list_items = ['ix','anomena i guarda...'] list_items = fitxer_menu.findChildren(GenericPredicate(roleName='menu item')) black_list_items = ['surt'] white_list_items = ['ix','anomena i guarda...'] black_found = [] for item in list_items: lname = item.name.lower() if lname in white_list_items: white_list_items.remove(item.name.lower()) if lname in black_list_items: black_found.append(lname) if len(white_list_items) > 0 or len(black_found) > 0: status = "wrong" result = "WRONG" else: status = "pass" result = "OK" self.write_result('LibreOffice in Valencian',result,status) return True import time x = LibreofficeTest(time.strftime("%d_%m_%Y:%H:%M:%S")) if not x.run('libreoffice --writer'): x.close() x.run('libreoffice --writer') x.close_recovery_dialog() time.sleep(2) x.test_language_valencian() x.close()