我正试图编写一个测试,验证当我在一个目录上glob时是否找到了正确的文件,但我不明白为什么glob会使用tmpdir\u工厂返回空文件,因为在一个实际目录上执行代码的工作与预期的一样。所有模块导入都是正确的,它正在调用函数。你知道吗
待测试代码:
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',...
在tmpdir/tmpdir\u工厂中,只有在写入文件之后,才会真正创建该文件。你知道吗
更改:
至
导致创建文件并按预期工作
相关问题 更多 >
编程相关推荐