20
20
21
21
import pytest
22
22
23
+ import tools .memap
23
24
from tools .memap import MemapParser
24
25
from copy import deepcopy
25
26
@@ -137,7 +138,7 @@ def memap_parser():
137
138
return memap_parser
138
139
139
140
140
- def generate_test_helper (memap_parser , format , depth , file_output = None ):
141
+ def generate_test_helper (memap_parser , format , depth , sep , file_output = None ):
141
142
"""
142
143
Helper that tests that the member variables "modules" is
143
144
unchanged after calling "generate_output"
@@ -147,57 +148,64 @@ def generate_test_helper(memap_parser, format, depth, file_output=None):
147
148
:param format: the file type to output
148
149
:param file_output: the file to output to
149
150
"""
150
-
151
151
old_modules = deepcopy (memap_parser .modules )
152
152
153
+ tools .memap .sep = sep
153
154
memap_parser .generate_output (format , depth , file_output = file_output )
154
155
155
156
assert memap_parser .modules == old_modules ,\
156
157
"generate_output modified the 'modules' property"
157
158
159
+ for file_name in memap_parser .short_modules :
160
+ assert (len (file_name .split (tools .memap .sep )) <= depth )
161
+
158
162
159
163
@pytest .mark .parametrize ("depth" , [1 , 2 , 20 ])
160
- def test_report_computed (memap_parser , depth ):
164
+ @pytest .mark .parametrize ("sep" , ["\\ " , "/" ])
165
+ def test_report_computed (memap_parser , depth , sep ):
161
166
"""
162
167
Test that a report and summary are computed
163
168
164
169
:param memap_parser: Mocked parser
165
170
:param depth: the detail of the output
166
171
"""
167
172
168
- memap_parser .generate_output ('table' , depth )
173
+ memap_parser .generate_output ('table' , depth , sep )
169
174
170
175
# Report is created after generating output
171
176
assert memap_parser .mem_summary
172
177
assert memap_parser .mem_report
173
178
174
179
175
180
@pytest .mark .parametrize ("depth" , [1 , 2 , 20 ])
176
- def test_generate_output_table (memap_parser , depth ):
181
+ @pytest .mark .parametrize ("sep" , ["\\ " , "/" ])
182
+ def test_generate_output_table (memap_parser , depth , sep ):
177
183
"""
178
184
Test that an output of type "table" can be generated correctly
179
185
:param memap_parser: Mocked parser
180
186
:param depth: the detail of the output
181
187
"""
182
- generate_test_helper (memap_parser , 'table' , depth )
188
+ generate_test_helper (memap_parser , 'table' , depth , sep )
183
189
184
190
185
191
@pytest .mark .parametrize ("depth" , [1 , 2 , 20 ])
186
- def test_generate_output_json (memap_parser , tmpdir , depth ):
192
+ @pytest .mark .parametrize ("sep" , ["\\ " , "/" ])
193
+ def test_generate_output_json (memap_parser , tmpdir , depth , sep ):
187
194
"""
188
195
Test that an output of type "json" can be generated correctly
189
196
:param memap_parser: Mocked parser
190
197
:param tmpdir: a unique location to place an output file
191
198
:param depth: the detail of the output
192
199
"""
193
200
file_name = str (tmpdir .join ('output.json' ).realpath ())
194
- generate_test_helper (memap_parser , 'json' , depth , file_name )
201
+ generate_test_helper (memap_parser , 'json' , depth , sep , file_name )
195
202
assert isfile (file_name ), "Failed to create json file"
196
203
json .load (open (file_name ))
197
204
198
205
199
206
@pytest .mark .parametrize ("depth" , [1 , 2 , 20 ])
200
- def test_generate_output_csv_ci (memap_parser , tmpdir , depth ):
207
+ @pytest .mark .parametrize ("sep" , ["\\ " , "/" ])
208
+ def test_generate_output_csv_ci (memap_parser , tmpdir , depth , sep ):
201
209
"""
202
210
Test ensures that an output of type "csv-ci" can be generated correctly
203
211
@@ -206,5 +214,5 @@ def test_generate_output_csv_ci(memap_parser, tmpdir, depth):
206
214
:param depth: the detail of the output
207
215
"""
208
216
file_name = str (tmpdir .join ('output.csv' ).realpath ())
209
- generate_test_helper (memap_parser , 'csv-ci' , depth , file_name )
217
+ generate_test_helper (memap_parser , 'csv-ci' , depth , sep , file_name )
210
218
assert isfile (file_name ), "Failed to create csv-ci file"
0 commit comments