def test_iter(setup_database): """ Passes test if `__iter__()` call on the `_TableIter` `instance` returns themself. """ instance = _TableIter(_Table(setup_database, TABLE, PRIMARY_KEY)) assert isinstance(instance.__iter__(), _TableIter)
def test_get_column_names(setup_database): """ Passes test if `get_column_names()` method of the `_Table` `instance` returns valid column names. """ instance = _Table(setup_database, TABLE, PRIMARY_KEY) assert instance.get_column_names() == COLUMN_NAMES
def test_attributes(setup_database): """ Passes test if `_Table` `instance` saves attributes with which it was initialized. """ instance = _Table(setup_database, TABLE, PRIMARY_KEY) assert (instance.database_name == setup_database) # pylint: disable=comparison-with-callable assert instance.table_name == TABLE assert instance.primary_key == PRIMARY_KEY
def test_get_cursor(setup_database, sql_expression: str, expected_result: Any): """ Passes test if `get_cursor(sql_expression).fetchall()` of the `_Table` `instance` returns `expected_result`. """ instance = _Table(setup_database, TABLE, PRIMARY_KEY) assert instance.get_cursor( sql_expression).fetchall() == expected_result
def test_next(setup_database): """ Passes test if `next()` and `__next__()` on the `_TableIter` `instance` returns correct results. """ instance = _TableIter(_Table(setup_database, TABLE, PRIMARY_KEY)) first = next(instance) second = instance.__next__() third = instance.__next__ assert [first, second, third()] == RECORDS
def test_next_stop_iteration(setup_database): """ Passes test if extra `next()` call on the `_TableIter` `instance` raises `StopIteration`. """ instance = _TableIter(_Table(setup_database, TABLE, PRIMARY_KEY)) next(instance) next(instance) next(instance) with pytest.raises(StopIteration): next(instance)
def test_assertion_error(setup_database): """ Passes test if `_Table` `instance` attributes are not accesseble for resetting and raises `AttributeError`. """ instance = _Table(setup_database, TABLE, PRIMARY_KEY) with pytest.raises(AttributeError): instance.database_name = "new value" with pytest.raises(AttributeError): instance.table_name = "new value" with pytest.raises(AttributeError): instance.primary_key = "new value"