Squish/Iterating Through a Table/es: Difference between revisions
Jump to navigation
Jump to search
AutoSpider (talk | contribs) (Convert ExpressionEngine section headers) |
(Mark as not-a-category) |
||
Line 1: | Line 1: | ||
{{Delete|reason=Page not category. Include as single block in [[Squish: iterating through a table/es]] if relevant}} | |||
This page in: [[:Category:Tools::Squish::Iterating through a table|English]] | |||
[[Category:Tools::Squish]] [[Category:Spanish]] | [[Category:Tools::Squish]] | ||
[[Category:Spanish]] | |||
= Iterando a través de una tabla = | = Iterando a través de una tabla = |
Revision as of 13:10, 15 September 2016
This article is nominated for deletion. Reason: Page not category. Include as single block in Squish: iterating through a table/es if relevant Please raise your support/opposition to this nomination in the article's discussion page. |
This page in: English
Iterando a través de una tabla
Hay varias formas de recorrer una tabla con script de test para utilizarlo cuando se necesita verificar o tomar una decisión sobre un determinado conjunto de filas o columnas. En los siguientes ejemplos vamos a utilizar los tres métodos para verificar que no hay celdas vacías en una tabla.
Al final, el uso de cualquiera de estos tres enfoques sería simplemente:
verifyNoEmptyCells(":MyQTableWidget")<code>
== Usando la API de Qt ==
Este acercamiento usa la API de Qt para acceder al modelo directamente e iterar entre las filas y las columnas de la tabla.
def verifyNoEmptyCells(tableName):
table = waitForObject(tableName) model = table.model() columnCount = model.columnCount() rowCount = model.rowCount()
for col in range(columnCount):
for row in range(rowCount): itemText = str(model.data(model.index(row, col), Qt.DisplayRole).toString())
test.verify(itemText != "")
== Usando waitForObjectItem() ==
Usando waitForObjectItem() se puede acceder a items de un widget especifico, tales como las acciones en un menú o en este caso, las celdas de una tabla. Se necesitan dos parámetros, el primero es el nombre del objeto primario y el segundo es la identificación del elemento. Para las celdas de una tabla, que es de dos números enteros en forma de fila / columna.
def verifyNoEmptyCells(tableName):
table = waitForObject(tableName) columnCount = table.columnCount rowCount = table.rowCount
for col in range(columnCount):
for row in range(rowCount): item = waitForObjectItem(tableName, str(row)+"/"str(col))
test.verify(item.text != "")
== Usando nombres reales ==
Squish ofrece dos formas de identificar los objetos en un script de tests, ya sea usando el nombre simbólico que se asigna a una entrada en el mapa del objetos, o usar el nombre real que muestra todas las propiedades y su valor esperado en una cadena de identificación. Detrás de escena, el nombre simbólico se mapea al nombre real, usando el nombre simbólico generalmente hace que el script sea más legible.
Al utilizar el nombre real para identificar las celdas, podemos cambiar los valores esperados de las propiedades y por lo tanto el acceso a las diferentes celdas de la tabla como se ve a continuación.
def verifyNoEmptyCells(tableName):
waitFor("object.exists(tableName)") columnCount = findObject(tableName).columnCount rowCount = findObject(tableName).rowCount
for col in range(columnCount):
for row in range(rowCount):
item = waitForObject("{column='" str(col) + "' container='" + tableName + "' row='" + str(row) + "' type='QModelIndex'}")
test.verify(item.text != "")