diff options
author | Xisco Fauli <xiscofauli@libreoffice.org> | 2023-06-02 12:28:47 +0200 |
---|---|---|
committer | Xisco Fauli <xiscofauli@libreoffice.org> | 2023-06-02 12:29:58 +0200 |
commit | 0225e909b8c8da089c1bbe2f6b4f162dd6d46188 (patch) | |
tree | dd4b22c769315755b1189be26bfc5d7d6affc16a | |
parent | b6f2a9fd5e5bb310b129dad527cf4821f5d21cdb (diff) |
mass-uitesting: improve calc tests
make use of states added in 30391deaf6e1726450378bbe5d320bfbbd213abf
"uitest: sc: check whether current row/column/table has data"
Change-Id: Ic575c19f09dac445fc1f1d7f32688e6787fb2e17
-rwxr-xr-x | uitest/mass-testing/calc.py | 156 | ||||
-rwxr-xr-x | uitest/mass-testing/run.py | 1 |
2 files changed, 117 insertions, 40 deletions
diff --git a/uitest/mass-testing/calc.py b/uitest/mass-testing/calc.py index ed11b826..8b9f3bbc 100755 --- a/uitest/mass-testing/calc.py +++ b/uitest/mass-testing/calc.py @@ -7,6 +7,7 @@ import os import signal from uitest.framework import UITestCase +from uitest.uihelper.common import get_state_as_dict from libreoffice.uno.propertyvalue import mkPropertyValues from contextlib import contextmanager @@ -44,7 +45,7 @@ class massTesting(UITestCase): document = self.ui_test.get_component() nrSheets = document.Sheets.getCount() #number of sheets in the document #go to first sheet - for i in range(nrSheets - 1): + for sheet in range(nrSheets - 1): self.xUITest.executeCommand(".uno:JumpToPrevTable") #Just in case more than 1 sheet is selected @@ -63,43 +64,69 @@ class massTesting(UITestCase): with self.load_file() as xEdit: nrSheets = self.go_to_first_sheet() - for i in range(nrSheets)[:maxSheets]: - self.xUITest.executeCommand(".uno:SelectAll") - xEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE":"DELETE"})) + document = self.ui_test.get_component() + for sheet in range(nrSheets)[:maxSheets]: + if not document.Sheets[sheet].isProtected() and \ + get_state_as_dict(xEdit)["CurrentTableHasData"] == "true": + self.xUITest.executeCommand(".uno:SelectAll") + xEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE":"DELETE"})) + + self.xUITest.executeCommand(".uno:Undo") - self.xUITest.executeCommand(".uno:Undo") self.xUITest.executeCommand(".uno:JumpToNextTable") def test_insert_column_and_undo(self): with self.load_file() as xEdit: nrSheets = self.go_to_first_sheet() - for i in range(nrSheets)[:maxSheets]: - self.xUITest.executeCommand(".uno:InsertColumnsBefore") - self.xUITest.executeCommand(".uno:Undo") + document = self.ui_test.get_component() + for sheet in range(nrSheets)[:maxSheets]: + if not document.Sheets[sheet].isProtected() and \ + get_state_as_dict(xEdit)["CurrentTableHasData"] == "true": + for column in range(10): + if get_state_as_dict(xEdit)["CurrentColumnHasData"] == "true": + self.xUITest.executeCommand(".uno:InsertColumnsBefore") + self.xUITest.executeCommand(".uno:Undo") + self.xUITest.executeCommand(".uno:InsertColumnsAfter") + self.xUITest.executeCommand(".uno:Undo") + + self.xUITest.executeCommand(".uno:GoRight") + self.xUITest.executeCommand(".uno:JumpToNextTable") def test_insert_row_and_undo(self): with self.load_file() as xEdit: nrSheets = self.go_to_first_sheet() + document = self.ui_test.get_component() + for sheet in range(nrSheets)[:maxSheets]: + if not document.Sheets[sheet].isProtected() and \ + get_state_as_dict(xEdit)["CurrentTableHasData"] == "true": + for row in range(10): + if get_state_as_dict(xEdit)["CurrentRowHasData"] == "true": + self.xUITest.executeCommand(".uno:InsertRowsBefore") + self.xUITest.executeCommand(".uno:Undo") + self.xUITest.executeCommand(".uno:InsertRowsAfter") + self.xUITest.executeCommand(".uno:Undo") + + self.xUITest.executeCommand(".uno:GoDown") - for i in range(nrSheets)[:maxSheets]: - self.xUITest.executeCommand(".uno:InsertRowsBefore") - self.xUITest.executeCommand(".uno:Undo") self.xUITest.executeCommand(".uno:JumpToNextTable") - def test_copy_all_paste_undo(self): + def xtest_copy_all_paste_undo(self): with self.load_file() as xEdit: nrSheets = self.go_to_first_sheet() - for i in range(nrSheets)[:maxSheets]: - self.xUITest.executeCommand(".uno:SelectAll") + document = self.ui_test.get_component() + for sheet in range(nrSheets)[:maxSheets]: + if not document.Sheets[sheet].isProtected() and \ + get_state_as_dict(xEdit)["CurrentTableHasData"] == "true": + self.xUITest.executeCommand(".uno:SelectAll") - self.xUITest.executeCommand(".uno:Copy") + self.xUITest.executeCommand(".uno:Copy") - self.xUITest.executeCommand(".uno:Paste") + self.xUITest.executeCommand(".uno:Paste") - self.xUITest.executeCommand(".uno:Undo") + self.xUITest.executeCommand(".uno:Undo") self.xUITest.executeCommand(".uno:JumpToNextTable") @@ -107,29 +134,75 @@ class massTesting(UITestCase): with self.load_file() as xEdit: nrSheets = self.go_to_first_sheet() - for i in range(nrSheets)[:maxSheets]: - self.xUITest.executeCommand(".uno:PrintPreview") #open print preview - self.xUITest.executeCommand(".uno:ClosePreview") # close print preview + for sheet in range(nrSheets)[:maxSheets]: + if get_state_as_dict(xEdit)["CurrentTableHasData"] == "true": + self.xUITest.executeCommand(".uno:PrintPreview") #open print preview + self.xUITest.executeCommand(".uno:ClosePreview") # close print preview + + xDoc = self.xUITest.getTopFocusWindow() + xEdit = xDoc.getChild("grid_window") + self.xUITest.executeCommand(".uno:JumpToNextTable") - self.xUITest.getTopFocusWindow() def test_hide_column_and_undo(self): with self.load_file() as xEdit: nrSheets = self.go_to_first_sheet() - for i in range(nrSheets)[:maxSheets]: - self.xUITest.executeCommand(".uno:HideColumn") - self.xUITest.executeCommand(".uno:Undo") + for sheet in range(nrSheets)[:maxSheets]: + if get_state_as_dict(xEdit)["CurrentTableHasData"] == "true": + for column in range(10): + if get_state_as_dict(xEdit)["CurrentColumnHasData"] == "true": + self.xUITest.executeCommand(".uno:HideColumn") + self.xUITest.executeCommand(".uno:Undo") + + self.xUITest.executeCommand(".uno:GoRight") + self.xUITest.executeCommand(".uno:JumpToNextTable") def test_hide_row_and_undo(self): with self.load_file() as xEdit: nrSheets = self.go_to_first_sheet() - for i in range(nrSheets)[:maxSheets]: - self.xUITest.executeCommand(".uno:HideRow") - self.xUITest.executeCommand(".uno:Undo") + for sheet in range(nrSheets)[:maxSheets]: + if get_state_as_dict(xEdit)["CurrentTableHasData"] == "true": + for row in range(10): + if get_state_as_dict(xEdit)["CurrentRowHasData"] == "true": + self.xUITest.executeCommand(".uno:HideRow") + self.xUITest.executeCommand(".uno:Undo") + + self.xUITest.executeCommand(".uno:GoDown") + + self.xUITest.executeCommand(".uno:JumpToNextTable") + + def test_delete_column_and_undo(self): + with self.load_file() as xEdit: + nrSheets = self.go_to_first_sheet() + + for sheet in range(nrSheets)[:maxSheets]: + if get_state_as_dict(xEdit)["CurrentTableHasData"] == "true": + for column in range(10): + if get_state_as_dict(xEdit)["CurrentColumnHasData"] == "true": + self.xUITest.executeCommand(".uno:DeleteColumns") + self.xUITest.executeCommand(".uno:Undo") + + self.xUITest.executeCommand(".uno:GoRight") + + self.xUITest.executeCommand(".uno:JumpToNextTable") + + def test_delete_row_and_undo(self): + with self.load_file() as xEdit: + nrSheets = self.go_to_first_sheet() + + for sheet in range(nrSheets)[:maxSheets]: + if get_state_as_dict(xEdit)["CurrentTableHasData"] == "true": + for row in range(10): + if get_state_as_dict(xEdit)["CurrentRowHasData"] == "true": + self.xUITest.executeCommand(".uno:DeleteRows") + self.xUITest.executeCommand(".uno:Undo") + + self.xUITest.executeCommand(".uno:GoDown") + self.xUITest.executeCommand(".uno:JumpToNextTable") def test_copy_sheet_undo_delete_sheet(self): @@ -138,24 +211,28 @@ class massTesting(UITestCase): ignoreSheets = 0 document = self.ui_test.get_component() - for i in range(nrSheets)[:maxSheets]: + for sheet in range(nrSheets)[:maxSheets]: #copy sheet, undo and delete - with self.ui_test.execute_dialog_through_command(".uno:Move") as xDialog: - xCopy = xDialog.getChild("copy") - xCopy.executeAction("CLICK", tuple()) + if get_state_as_dict(xEdit)["CurrentTableHasData"] == "true": + with self.ui_test.execute_dialog_through_command(".uno:Move") as xDialog: + xCopy = xDialog.getChild("copy") + xCopy.executeAction("CLICK", tuple()) - self.xUITest.executeCommand(".uno:Undo") + self.xUITest.executeCommand(".uno:Undo") if document.Sheets[ignoreSheets].isProtected(): #Do not count the last sheet - if i < nrSheets - 1: + if sheet < nrSheets - 1: ignoreSheets += 1 self.xUITest.executeCommand(".uno:JumpToNextTable") else: #Do not delete the last sheet - if i < nrSheets - 1: - with self.ui_test.execute_dialog_through_command(".uno:Remove", close_button="yes"): - pass + if sheet < nrSheets - 1: + if get_state_as_dict(xEdit)["CurrentTableHasData"] == "true": + with self.ui_test.execute_dialog_through_command(".uno:Remove", close_button="yes"): + pass + else: + self.xUITest.executeCommand(".uno:Remove") self.assertEqual(document.Sheets.getCount(), 1 + ignoreSheets + len(range(nrSheets)[maxSheets + 1:])) @@ -164,8 +241,9 @@ class massTesting(UITestCase): nrSheets = self.go_to_first_sheet() document = self.ui_test.get_component() - for i in range(nrSheets)[:maxSheets]: - if not document.Sheets[i].isProtected(): + for sheet in range(nrSheets)[:maxSheets]: + if not document.Sheets[sheet].isProtected() and \ + get_state_as_dict(xEdit)["CurrentTableHasData"] == "true": self.xUITest.executeCommand(".uno:SelectAll") self.xUITest.executeCommand(".uno:Bold") self.xUITest.executeCommand(".uno:Undo") @@ -208,7 +286,7 @@ class massTesting(UITestCase): self.xUITest.executeCommand(".uno:StyleApply?Style:string=Heading%202&FamilyName:string=ParagraphStyles") self.xUITest.executeCommand(".uno:Undo") - self.xUITest.executeCommand(".uno:JumpToNextTable") + self.xUITest.executeCommand(".uno:JumpToNextTable") def test_sidebar(self): with self.load_file() as xEdit: diff --git a/uitest/mass-testing/run.py b/uitest/mass-testing/run.py index 35485fc8..595bc02b 100755 --- a/uitest/mass-testing/run.py +++ b/uitest/mass-testing/run.py @@ -210,7 +210,6 @@ def run_tests_and_get_results(sofficePath, listFiles, isDebug): kill_soffice() cpuCount = int(multiprocessing.cpu_count() / 2) #Use half of the CPUs - print(cpuCount) chunkSplit = cpuCount * 16 chunks = [listFiles[x:x+chunkSplit] for x in range(0, len(listFiles), chunkSplit)] totalCount = len(listFiles) |