@@ -50,8 +50,10 @@ def clean_events(self, extract_dir, events):
5050 """
5151 events_results = []
5252 for e in events :
53- ne = e ._replace (source = e .source .replace (extract_dir , '' ),
54- message = e .message .replace (self .test_data_dir , '' ))
53+ ne = e ._replace (
54+ source = e .source .replace (extract_dir , '' ),
55+ message = e .message .replace (self .test_data_dir , '' ),
56+ )
5557 events_results .append (ne ._asdict ())
5658
5759 return events_results
@@ -78,7 +80,7 @@ def test_extract_tar_relative(self):
7880 expected = ()
7981 test_dir = self .get_test_loc ('tar/tar_relative.tar' )
8082 extract_dir = self .get_temp_dir ()
81- events = utils .extract_tar (location = test_dir , target_dir = extract_dir )
83+ events = utils .extract_tar (location = test_dir , target_dir = extract_dir , as_events = True )
8284 check_files (target_dir = extract_dir , expected = expected )
8385 events = self .clean_events (extract_dir , events )
8486 expected_events = [
@@ -95,14 +97,29 @@ def test_extract_tar_relative(self):
9597
9698 assert events == expected_events
9799
100+ def test_extract_tar_relative_as_strings (self ):
101+ expected = ()
102+ test_dir = self .get_test_loc ('tar/tar_relative.tar' )
103+ extract_dir = self .get_temp_dir ()
104+ events = utils .extract_tar (location = test_dir , target_dir = extract_dir , as_events = False )
105+ check_files (target_dir = extract_dir , expected = expected )
106+
107+ events = [e .replace (self .test_data_dir , '' ) for e in events ]
108+ expected_events = [
109+ 'warning: /tar/tar_relative.tar: skipping unsupported ../a_parent_folder.txt with relative path.' ,
110+ 'warning: /tar/tar_relative.tar: skipping unsupported ../../another_folder/b_two_root.txt with relative path.' ,
111+ 'warning: /tar/tar_relative.tar: skipping unsupported ../folder/subfolder/b_subfolder.txt with relative path.' ,
112+ ]
113+ assert events == expected_events
114+
98115 def test_extract_tar_absolute (self ):
99116 expected = (
100117 'tmp/subdir/a.txt' ,
101118 'tmp/subdir/b.txt' ,
102119 )
103120 test_dir = self .get_test_loc ('tar/absolute_path.tar' )
104121 extract_dir = self .get_temp_dir ()
105- events = utils .extract_tar (location = test_dir , target_dir = extract_dir )
122+ events = utils .extract_tar (location = test_dir , target_dir = extract_dir , as_events = True )
106123 check_files (target_dir = extract_dir , expected = expected )
107124
108125 events = self .clean_events (extract_dir , events )
@@ -124,10 +141,9 @@ def test_extract_tar_not_skipping_links(self):
124141 test_tarball = self .get_test_loc ('utils/layer_with_links.tar' )
125142 extract_dir = self .get_temp_dir ()
126143
127- events = utils .extract_tar (location = test_tarball , target_dir = extract_dir , skip_symlinks = False )
144+ events = utils .extract_tar (location = test_tarball , target_dir = extract_dir , as_events = True , skip_symlinks = False )
128145
129146 results = self .clean_paths (extract_dir )
130-
131147 expected_results = self .get_test_loc ('utils/layer_with_links.tar.expected.json' , must_exist = False )
132148 check_expected (results , expected_results , regen = False )
133149
@@ -139,82 +155,41 @@ def test_extract_tar_skipping_links(self):
139155 test_tarball = self .get_test_loc ('utils/layer_with_links.tar' )
140156 extract_dir = self .get_temp_dir ()
141157
142- events = utils .extract_tar (location = test_tarball , target_dir = extract_dir , skip_symlinks = True )
143-
144- results = sorted ([p .replace (extract_dir , '' )
145- for p in fileutils .resource_iter (
146- location = extract_dir ,
147- with_dirs = True ,
148- follow_symlinks = True ,
149- )
150- ])
158+ events = utils .extract_tar (location = test_tarball , target_dir = extract_dir , as_events = True , skip_symlinks = True )
151159
160+ results = self .clean_paths (extract_dir )
152161 expected_results = self .get_test_loc ('utils/layer_with_links.tar.expected-skipping.json' , must_exist = False )
153162 check_expected (results , expected_results , regen = False )
154163
155- events_results = []
156- for e in events :
157- ne = e ._replace (
158- source = e .source .replace (extract_dir , '' ),
159- message = e .message .replace (self .test_data_dir , '' ),
160- )
161- events_results .append (ne ._asdict ())
162-
164+ events_results = self .clean_events (extract_dir , events )
163165 expected_events = self .get_test_loc ('utils/layer_with_links.tar.expected-events-skipping.json' , must_exist = False )
164166 check_expected (events_results , expected_events , regen = False )
165167
166168 def test_extract_tar_with_symlinks (self ):
167169 test_tarball = self .get_test_loc ('utils/layer_with_links.tar' )
168170 extract_dir = self .get_temp_dir ()
169171
170- events = utils .extract_tar_with_symlinks (location = test_tarball , target_dir = extract_dir )
171- results = sorted ([p .replace (extract_dir , '' )
172- for p in fileutils .resource_iter (
173- location = extract_dir ,
174- with_dirs = True ,
175- follow_symlinks = True ,
176- )
177- ])
172+ events = utils .extract_tar_with_symlinks (location = test_tarball , as_events = True , target_dir = extract_dir )
178173
174+ results = self .clean_paths (extract_dir )
179175 expected_results = self .get_test_loc ('utils/layer_with_links.tar.expected.json' , must_exist = False )
180176 check_expected (results , expected_results , regen = False )
181177
182- events_results = []
183- for e in events :
184- ne = e ._replace (
185- source = e .source .replace (extract_dir , '' ),
186- message = e .message .replace (self .test_data_dir , '' ),
187- )
188- events_results .append (ne ._asdict ())
189-
178+ events_results = self .clean_events (extract_dir , events )
190179 expected_events = self .get_test_loc ('utils/layer_with_links.tar.expected-events.json' , must_exist = False )
191180 check_expected (events_results , expected_events , regen = False )
192181
193182 def test_extract_tar_with_broken_links_skipping_links (self ):
194183 test_tarball = self .get_test_loc ('utils/layer_with_links_missing_targets.tar' )
195184 extract_dir = self .get_temp_dir ()
196185
197- events = utils .extract_tar (location = test_tarball , target_dir = extract_dir , skip_symlinks = True )
198-
199- results = sorted ([p .replace (extract_dir , '' )
200- for p in fileutils .resource_iter (
201- location = extract_dir ,
202- with_dirs = True ,
203- follow_symlinks = True ,
204- )
205- ])
186+ events = utils .extract_tar (location = test_tarball , target_dir = extract_dir , as_events = True , skip_symlinks = True )
206187
188+ results = self .clean_paths (extract_dir )
207189 expected_results = self .get_test_loc ('utils/layer_with_links_missing_targets.tar.expected.json' , must_exist = False )
208190 check_expected (results , expected_results , regen = False )
209191
210- events_results = []
211- for e in events :
212- ne = e ._replace (
213- source = e .source .replace (extract_dir , '' ),
214- message = e .message .replace (self .test_data_dir , '' ),
215- )
216- events_results .append (ne ._asdict ())
217-
192+ events_results = self .clean_events (extract_dir , events )
218193 expected_events = self .get_test_loc ('utils/layer_with_links_missing_targets.tar.expected-events.json' , must_exist = False )
219194 check_expected (events_results , expected_events , regen = False )
220195
@@ -223,25 +198,12 @@ def test_extract_tar_with_symlinks_with_broken_links(self):
223198 extract_dir = self .get_temp_dir ()
224199
225200 events = utils .extract_tar_with_symlinks (location = test_tarball , target_dir = extract_dir )
226- results = sorted ([p .replace (extract_dir , '' )
227- for p in fileutils .resource_iter (
228- location = extract_dir ,
229- with_dirs = True ,
230- follow_symlinks = True ,
231- )
232- ])
233201
202+ results = self .clean_paths (extract_dir )
234203 expected_results = self .get_test_loc ('utils/layer_with_links_missing_targets.tar.expected-broken.json' , must_exist = False )
235204 check_expected (results , expected_results , regen = False )
236205
237- events_results = []
238- for e in events :
239- ne = e ._replace (
240- source = e .source .replace (extract_dir , '' ),
241- message = e .message .replace (self .test_data_dir , '' ),
242- )
243- events_results .append (ne ._asdict ())
244-
206+ events_results = self .clean_events (extract_dir , events )
245207 expected_events = self .get_test_loc ('utils/layer_with_links_missing_targets.tar.expected-events-broken.json' , must_exist = False )
246208 check_expected (events_results , expected_events , regen = False )
247209
0 commit comments