'Verifies that a specific table row contains `expected`.
The uppermost row is row number 1. A negative column
number can be used to get column counting from the end of the row
(end: -1). For tables that are structured with thead, tbody and tfoot,
only the tbody section is searched. Please use `Table Header Should Contain`
or `Table Footer Should Contain` for tests against the header or
footer content.
If the table contains cells that span multiple rows, a match
only occurs for the uppermost row of those merged cells. To
understand how tables are identified, please take a look at
the `introduction`.
See `Page Should Contain Element` for explanation about `loglevel` argument.'

@keyword
def table_row_should_contain(self, table_locator, row, expected, loglevel='INFO'):

    element = self._table_element_finder.find_by_row(table_locator, row, expected)
    if (element is None):
        self.ctx.log_source(loglevel)
        raise AssertionError(("Row    #%s    in    table    identified    by    '%s'    should    have    contained    text    '%s'." % (row, table_locator, expected)))
