test – Mejorar coverage de resultados – Python

He creado una función para hacer la lectura de un documento excel, que devuelve 2 datasets y una lista.
Después he creado un test y por último he mirado la cobertura, pero veo que el valor es muy bajo y que no está ejecutando apenas la función.

Función:


def xlsx_prep(excel_doc):
    """Deletes the rows which do not fulfill the requirement
    of being banned and takes only the non-repeated pollsters
    which took part and changes the grade into rounded values
    of grade and/ or numerical values of grade

    :param
    excel_doc: (dataset) containing the credibility sorted by pollster
    :return:
    excel_pollster: list with the filtered information of the pollsters
    excel (dataframe): contains the filters and the grades are rounded
    excel_credibility (dataframe): based on 'excel', it transform the grades
    into a numerical value
    """
    # global excel
    excel = pd.read_excel(excel_doc, engine='openpyxl')
    excel = excel(excel('Banned by 538') != 'yes')
    excel_pollster = list(excel('Pollster').unique())

    # round grades to the lower grade
    excel = excel.replace({'538 Grade': {'A+': 'A',
                                         'A-': 'A',
                                         'B+': 'B',
                                         'B-': 'B',
                                         'C+': 'C',
                                         'C-': 'C',
                                         'A/B': 'B',
                                         'B/C': 'C',
                                         'C/D': 'D',
                                         'D+': 'D',
                                         'D-': 'D'}})

    # replace grade alpha values into numerical. valid for ex. 5
    excel_credibility = excel.replace({'538 Grade': {'A': '1',
                                                        'B': '0.5',
                                                        'C': '0',
                                                        'D': '-0.5',
                                                        'F': '-1'}})

    # change type of cell to get the result
    excel_credibility('538 Grade') = pd.to_numeric(excel_credibility('538 Grade'))
    excel_credibility('Predictive    Plus-Minus') = pd.to_numeric(excel_credibility('Predictive    Plus-Minus'))
    excel_credibility('Credibility') = excel_credibility('538 Grade') + excel_credibility('Predictive    Plus-Minus')

    return excel_pollster, excel, excel_credibility

Ahora muestro el test:

class TestDataExpl(unittest.TestCase):

    # Test xlsx_prep function
    def test_xlsx_prep(self):
        print("Starting test_xlsx_prep")
        a, b, c = xlsx_prep(excel_doc)
        self.assertEqual(a(1), 'Selzer & Co.')
        self.assertEqual(b('538 Grade')(0), 'A')
        self.assertEqual(c('538 Grade')(0), 1.0)

if __name__ == "__main__":
    suite = TestSuite()
    suite.addTest(TestAddOne("test_xlsx_prep"))

    TextTestRunner().run(suite)

Por último, indico el código que ejecuto para comprobar la cobertura

coverage run xlsx_prep.py
coverage report

El resultado es:
introducir la descripción de la imagen aquí
introducir la descripción de la imagen aquí
introducir la descripción de la imagen aquí

No sé si es que de verdad no estoy ejecutando en el test suficientes casos o es que no estoy haciendo bien la llamada a la función para que ejecute el test y por eso después obtengo una cobertura tan baja.

Qué estoy haciendo mal?

Muchas gracias.