pytest tmpdir_factory тест поиска глобуса

1

Я пытаюсь написать тест, который проверяет, что правильные файлы найдены, когда я glob над каталогом, но я не понимаю, почему glob возвращается пустым с помощью tmpdir_factory, так как выполнение кода в реальном каталоге работает, как ожидалось. Все импорт модулей корректны, и он вызывает функцию.

Код для тестирования:

def get_files(sdir, extension):
    return glob.glob1(sdir, "*" + extension + "*")

код pytest:

flist = [
    "12707054321.HOM0LRP2.COUNTS.JOB46147.pg96.afp.2017011",
    "22707054321.HOM0LRP2.COUNTS.JOB46147.pg96.afp.2017012",
    "32707054321.HOM0LRP2.COUNTS.JOB46147.pg96.afp.2017013",
    "42707054321.HOM0LRP2.COUNTS.JOB46147.pg96.afp.2017014",
    "52707054321.HOM0LRP2.COUNTS.JOB46147.pg96.afp.2017015",
    "12707054321.HOM0LRP2.COUNTS.JOB46147.pg96.afp.2017011.pdpr",
    "22707054321.HOM0LRP2.COUNTS.JOB46147.pg96.afp.2017012.pdpr",
    "32707054321.HOM0LRP2.COUNTS.JOB46147.pg96.afp.2017013.pdpr",
    "42707054321.HOM0LRP2.COUNTS.JOB46147.pg96.afp.2017014.pdpr",
    "52707054321.HOM0LRP2.COUNTS.JOB46147.pg96.afp.2017015.pdpr"
]


def test_get_files_afp(tmpdir_factory):
    rlist = [
        "12707054321.HOM0LRP2.COUNTS.JOB46147.pg96.afp.2017011",
        "22707054321.HOM0LRP2.COUNTS.JOB46147.pg96.afp.2017012",
        "32707054321.HOM0LRP2.COUNTS.JOB46147.pg96.afp.2017013",
        "42707054321.HOM0LRP2.COUNTS.JOB46147.pg96.afp.2017014",
        "52707054321.HOM0LRP2.COUNTS.JOB46147.pg96.afp.2017015"
    ]
    test_dir = tmpdir_factory.mktemp('testdata')
    for f in flist:
        test_dir.join(f)

    lst = get_files(sdir=str(test_dir), extension=".afp")
    assert lst == rlist

не удается:

assert lst == rlist
E       AssertionError: assert [] == ['12707054321.HOM0LRP2.COUNT....JOB46147.pg96.afp.2017015']
E         Right contains more items, first extra item: 
'12707054321.HOM0LRP2.COUNTS.JOB46147.pg96.afp.2017011'
E         Full diff:
E         - []
E         + ['12707054321.HOM0LRP2.COUNTS.JOB46147.pg96.afp.2017011',
E         +  '22707054321.HOM0LRP2.COUNTS.JOB46147.pg96.afp.2017012',
E         +  '32707054321.HOM0LRP2.COUNTS.JOB46147.pg96.afp.2017013',
E         +  '42707054321.HOM0LRP2.COUNTS.JOB46147.pg96.afp.2017014',...
Теги:
testing
pytest

1 ответ

0
Лучший ответ

В tmpdir/tmpdir_factory файл фактически не создается до тех пор, пока вы его не напишите.

изменения:

for f in flist:
    test_dir.join(f)

в

for f in flist:
    a = test_dir.join(f)
    a.write('')

Заставляет файл создаваться и работает как ожидалось

Ещё вопросы

Сообщество Overcoder
Наверх
Меню