"""Test for data extraction module.""" from flexmock import flexmock import pytest from availability_etl import extract from availability_etl.connectors import microservice_db from tests import conftest @pytest.mark.parametrize( 'db_query_result', ( ( (('f1', 'one'), ('f2', 'first')), (('f1', 'two'), ('f2', 'second')), ), (), ) ) def test_extracted(db_query_result, get_fake_db_connection): """Test extracted iterator yields expected data.""" conn = get_fake_db_connection() (flexmock(microservice_db) .should_receive('get_microservice_connection') .and_return(conn)) (flexmock(conftest) .should_receive('fake_connection_execute') .and_return(iter(db_query_result))) output_rows = list(extract.extracted()) assert len(output_rows) == len(db_query_result) for row_dict, expected_row in zip(output_rows, db_query_result): assert row_dict == dict(expected_row)