@@ -28,6 +28,23 @@ def temp_tar_gz_file(tmpdir):
2828 return gz_path
2929
3030
31+ @pytest .fixture
32+ def temp_tar_file (tmpdir ):
33+
34+ subfolder = tmpdir .mkdir ('subfolder_plain_tar' )
35+ file1 = subfolder .join ('file1.txt' )
36+ file2 = subfolder .join ('file2.txt' )
37+ file1 .write ('This is the first file.' )
38+ file2 .write ('This is the second file.' )
39+
40+ tar_path = tmpdir .join ('archive.tar' )
41+
42+ with tarfile .open (tar_path , 'w:' ) as tar :
43+ tar .add (subfolder .strpath , arcname = os .path .basename (subfolder .strpath ))
44+
45+ return tar_path
46+
47+
3148@pytest .fixture
3249def temp_xz_file (tmpdir ):
3350
@@ -138,3 +155,25 @@ def test_open_tar_gz(temp_tar_gz_file):
138155 opener = _open .Opener (temp_tar_gz_file .strpath , large = False )
139156
140157 assert opener .result ['subfolder/file1.txt' ] == b'This is the first file.'
158+
159+
160+ def test_open_plain_tar (temp_tar_file ):
161+
162+ opener = _open .Opener (temp_tar_file .strpath , ext = 'tar' )
163+
164+ assert isinstance (opener .result , dict )
165+ assert set (opener .result .keys ()) == {
166+ 'subfolder_plain_tar/file1.txt' ,
167+ 'subfolder_plain_tar/file2.txt' ,
168+ }
169+ assert (
170+ opener .result ['subfolder_plain_tar/file1.txt' ].read () ==
171+ b'This is the first file.'
172+ )
173+
174+ opener = _open .Opener (temp_tar_file .strpath , ext = 'tar' , large = False )
175+
176+ assert (
177+ opener .result ['subfolder_plain_tar/file2.txt' ] ==
178+ b'This is the second file.'
179+ )
0 commit comments