pkgutil get_data: AttributeError: у объекта 'NoneType' нет атрибута 'декодировать' - PullRequest
0 голосов
/ 28 октября 2019

Я написал тест, в котором я получаю файл локального ресурса, например:

from pkgutil import get_data

@fixture(scope='session')
def ref_o_full():
    return pd.read_csv(StringIO(get_data('test_data', 'ref_o.csv').decode()))

При запуске теста я получаю следующее исключение:

test setup failed
@fixture(scope='session')
    def ref_o_full():
>       return pd.read_csv(StringIO(get_data('test_data', 'ref_o.csv').decode('utf8')))
E       AttributeError: 'NoneType' object has no attribute 'decode'

ОднакоЕсли бы я должен был запустить тест в режиме отладки, это исключение не происходит. Мне кажется, что это какое-то состояние гонки?

Я перешел на использование следующего, которое работает каждый раз:

from pkg_resources import resource_filename
from os.path import join as join_path

@fixture(scope='session')
def ref_o_full():
    dir = resource_filename(__name__, 'test_data')
    return pd.read_csv(join_path(dir, 'ref_o.csv'))
...