Skip to content

Commit 6381636

Browse files
committed
use temp dir instead of unlink()ing temp files
1 parent e09efd2 commit 6381636

File tree

3 files changed

+68
-133
lines changed

3 files changed

+68
-133
lines changed

tests/kern_subs.fea

Lines changed: 0 additions & 75 deletions
This file was deleted.

tests/test_kernFeatureWriter.py

Lines changed: 68 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,22 @@
11
import defcon
22
import sys
3+
4+
from afdko.fdkutils import get_temp_dir_path
35
from pathlib import Path
46

7+
58
sys.path.append("..")
69
from kernFeatureWriter import *
710

11+
812
TEST_DIR = Path(__file__).parent
13+
TEMP_DIR = Path(get_temp_dir_path())
914

1015

1116
class Dummy(object):
17+
'''
18+
for ad-hoc arguments
19+
'''
1220
pass
1321

1422

@@ -129,6 +137,20 @@ def test_remap_kerning():
129137
assert list(kp._remap_kerning(f.kerning).keys()) == remapped_pairs
130138

131139

140+
def test_sanityCheck(capsys):
141+
'''
142+
somehow trigger that sanity check (not sure how useful)
143+
'''
144+
ufo_path = TEST_DIR / 'kern_example.ufo'
145+
f = defcon.Font(ufo_path)
146+
kp = KernProcessor()
147+
kp.pairs_processed = ['some pair']
148+
kp.kerning = f.kerning
149+
kp._sanityCheck()
150+
out, err = capsys.readouterr()
151+
assert 'Something went wrong' in out
152+
153+
132154
# integration tests
133155
# -----------------
134156

@@ -157,22 +179,36 @@ def test_default():
157179
'''
158180
args = Defaults()
159181
ufo_path = TEST_DIR / 'kern_example.ufo'
160-
fea_temp = TEST_DIR / 'tmp_kern_example.fea'
161-
fea_example = read_file(TEST_DIR / 'kern_example.fea')
182+
fea_example = TEST_DIR / 'kern_example.fea'
183+
fea_temp = TEMP_DIR / fea_example.name
162184
args.input_file = ufo_path
163185
args.output_name = fea_temp
164186
f = defcon.Font(ufo_path)
165187
run(f, args)
166-
assert read_file(fea_temp) == fea_example
188+
assert read_file(fea_temp) == read_file(fea_example)
167189

168190
'''
169191
test with --dissolve_single option, which should not make a difference
170192
for this UFO (no single-item groups)
171193
'''
172194
args.dissolve_single = True
173195
run(f, args)
174-
assert read_file(fea_temp) == fea_example
175-
fea_temp.unlink()
196+
assert read_file(fea_temp) == read_file(fea_example)
197+
198+
199+
def test_default_ufo2():
200+
'''
201+
normal LTR test for a UFO2 file
202+
'''
203+
args = Defaults()
204+
ufo_path = TEST_DIR / 'kern_example_ufo2.ufo'
205+
fea_example = TEST_DIR / 'kern_example.fea'
206+
fea_temp = TEMP_DIR / fea_example.name
207+
args.input_file = ufo_path
208+
args.output_name = fea_temp
209+
f = defcon.Font(ufo_path)
210+
run(f, args)
211+
assert read_file(fea_temp) == read_file(fea_example)
176212

177213

178214
def test_main():
@@ -181,26 +217,24 @@ def test_main():
181217
'''
182218
ufo_path = TEST_DIR / 'kern_example.ufo'
183219
fea_example = TEST_DIR / 'kern_example.fea'
184-
fea_temp = TEST_DIR / 'tmp_kern_example.fea'
220+
fea_temp = TEMP_DIR / fea_example.name
185221
args = Defaults()
186222
args.input_file = ufo_path
187223
args.output_name = fea_temp
188224
main([str(ufo_path), '--output_name', str(fea_temp)])
189225
assert read_file(fea_example) == read_file(fea_temp)
190-
fea_temp.unlink()
191226

192227

193228
def test_default_rtl():
194229
args = Defaults()
195230
ufo_path = TEST_DIR / 'kern_example_rtl.ufo'
196-
fea_temp = TEST_DIR / 'tmp_kern_example_rtl.fea'
197-
fea_example = read_file(TEST_DIR / 'kern_example_rtl.fea')
231+
fea_example = TEST_DIR / 'kern_example_rtl.fea'
232+
fea_temp = TEMP_DIR / fea_example.name
198233
args.input_file = ufo_path
199234
args.output_name = fea_temp
200235
f = defcon.Font(ufo_path)
201236
run(f, args)
202-
assert read_file(fea_temp) == fea_example
203-
fea_temp.unlink()
237+
assert read_file(fea_temp) == read_file(fea_example)
204238

205239

206240
def test_subtable():
@@ -209,16 +243,15 @@ def test_subtable():
209243
'''
210244
args = Defaults()
211245
ufo_path = TEST_DIR / 'kern_example.ufo'
212-
fea_temp = TEST_DIR / 'tmp_kern_example_subs.fea'
213-
fea_example = read_file(TEST_DIR / 'kern_example_subs.fea')
246+
fea_example = TEST_DIR / 'kern_example_subs.fea'
247+
fea_temp = TEMP_DIR / fea_example.name
214248
args.input_file = ufo_path
215249
args.write_subtables = True
216250
args.subtable_size = 128
217251
args.output_name = fea_temp
218252
f = defcon.Font(ufo_path)
219253
run(f, args)
220-
assert read_file(fea_temp) == fea_example
221-
fea_temp.unlink()
254+
assert read_file(fea_temp) == read_file(fea_example)
222255

223256

224257
def test_subtable_rtl():
@@ -227,16 +260,15 @@ def test_subtable_rtl():
227260
'''
228261
args = Defaults()
229262
ufo_path = TEST_DIR / 'kern_example_rtl.ufo'
230-
fea_temp = TEST_DIR / 'tmp_kern_example_rtl_subs.fea'
231-
fea_example = read_file(TEST_DIR / 'kern_example_rtl_subs.fea')
263+
fea_example = TEST_DIR / 'kern_example_rtl_subs.fea'
264+
fea_temp = TEMP_DIR / fea_example.name
232265
args.input_file = ufo_path
233266
args.write_subtables = True
234267
args.subtable_size = 128
235268
args.output_name = fea_temp
236269
f = defcon.Font(ufo_path)
237270
run(f, args)
238-
assert read_file(fea_temp) == fea_example
239-
fea_temp.unlink()
271+
assert read_file(fea_temp) == read_file(fea_example)
240272

241273

242274
def test_dissolve():
@@ -245,23 +277,20 @@ def test_dissolve():
245277
'''
246278
args = Defaults()
247279
ufo_path = TEST_DIR / 'kern_AV.ufo'
248-
tmp_feature_undissolved = TEST_DIR / 'tmp_kern_AV_undissolved.fea'
249-
tmp_feature_dissolved = TEST_DIR / 'tmp_kern_AV_dissolved.fea'
250-
example_feature_undissolved = read_file(
251-
TEST_DIR / 'kern_AV_undissolved.fea')
252-
example_feature_dissolved = read_file(
253-
TEST_DIR / 'kern_AV_dissolved.fea')
280+
fea_example_singletons = TEST_DIR / 'kern_AV_singletons.fea'
281+
fea_temp_singletons = TEMP_DIR / fea_example_singletons.name
282+
fea_example_dissolved = TEST_DIR / 'kern_AV_dissolved.fea'
283+
fea_temp_dissolved = TEMP_DIR / fea_example_dissolved.name
254284
args.input_file = ufo_path
255-
args.output_name = tmp_feature_undissolved
285+
args.output_name = fea_temp_singletons
256286
f = defcon.Font(ufo_path)
257287
run(f, args)
258-
assert read_file(tmp_feature_undissolved) == example_feature_undissolved
288+
assert read_file(fea_temp_singletons) == read_file(fea_example_singletons)
289+
259290
args.dissolve_single = True
260-
args.output_name = tmp_feature_dissolved
291+
args.output_name = fea_temp_dissolved
261292
run(f, args)
262-
assert read_file(tmp_feature_dissolved) == example_feature_dissolved
263-
tmp_feature_undissolved.unlink()
264-
tmp_feature_dissolved.unlink()
293+
assert read_file(fea_temp_dissolved) == read_file(fea_example_dissolved)
265294

266295

267296
def test_left_side_exception():
@@ -271,27 +300,25 @@ def test_left_side_exception():
271300
'''
272301
args = Defaults()
273302
ufo_path = TEST_DIR / 'kern_left_side_exception.ufo'
274-
fea_temp = TEST_DIR / 'tmp_left_side_exception.fea'
275-
fea_example = read_file(TEST_DIR / 'kern_left_side_exception.fea')
303+
fea_example = TEST_DIR / 'kern_left_side_exception.fea'
304+
fea_temp = TEMP_DIR / fea_example.name
276305
args.input_file = ufo_path
277306
args.output_name = fea_temp
278307
f = defcon.Font(ufo_path)
279308
run(f, args)
280-
assert read_file(fea_temp) == fea_example
281-
fea_temp.unlink()
309+
assert read_file(fea_temp) == read_file(fea_example)
282310

283311

284312
def test_unused_groups():
285313
ufo_path = TEST_DIR / 'kern_unused_groups.ufo'
286314
fea_example = TEST_DIR / 'kern_unused_groups.fea'
287-
fea_temp = TEST_DIR / 'tmp_kern_unused_groups.fea'
315+
fea_temp = TEMP_DIR / fea_example.name
288316
f = defcon.Font(ufo_path)
289317
args = Defaults()
290318
args.input_file = ufo_path
291319
args.output_name = fea_temp
292320
run(f, args)
293321
assert read_file(fea_example) == read_file(fea_temp)
294-
fea_temp.unlink()
295322

296323

297324
def test_ignored_groups():
@@ -300,28 +327,13 @@ def test_ignored_groups():
300327
'''
301328
ufo_path = TEST_DIR / 'kern_ignored_groups.ufo'
302329
fea_example = TEST_DIR / 'kern_ignored_groups.fea'
303-
fea_temp = TEST_DIR / 'tmp_kern_ignored_groups.fea'
330+
fea_temp = TEMP_DIR / fea_example.name
304331
f = defcon.Font(ufo_path)
305332
args = Defaults()
306333
args.input_file = ufo_path
307334
args.output_name = fea_temp
308335
run(f, args)
309336
assert read_file(fea_example) == read_file(fea_temp)
310-
fea_temp.unlink()
311-
312-
313-
def test_sanityCheck(capsys):
314-
'''
315-
somehow trigger that sanity check (not sure how useful)
316-
'''
317-
ufo_path = TEST_DIR / 'kern_example.ufo'
318-
f = defcon.Font(ufo_path)
319-
kp = KernProcessor()
320-
kp.pairs_processed = ['some pair']
321-
kp.kerning = f.kerning
322-
kp._sanityCheck()
323-
out, err = capsys.readouterr()
324-
assert 'Something went wrong' in out
325337

326338

327339
def test_ss4_exceptions():
@@ -330,14 +342,13 @@ def test_ss4_exceptions():
330342
'''
331343
ufo_path = TEST_DIR / 'kern_ss4_exceptions.ufo'
332344
fea_example = TEST_DIR / 'kern_ss4_exceptions.fea'
333-
fea_temp = TEST_DIR / 'tmp_kern_ss4_exceptions.fea'
345+
fea_temp = TEMP_DIR / fea_example.name
334346
f = defcon.Font(ufo_path)
335347
args = Defaults()
336348
args.input_file = ufo_path
337349
args.output_name = fea_temp
338350
run(f, args)
339351
assert read_file(fea_example) == read_file(fea_temp)
340-
fea_temp.unlink()
341352

342353

343354
def test_mock_rtl():
@@ -346,20 +357,19 @@ def test_mock_rtl():
346357
'''
347358
ufo_path = TEST_DIR / 'kern_mock_rtl.ufo'
348359
fea_example = TEST_DIR / 'kern_mock_rtl.fea'
349-
fea_temp = TEST_DIR / 'tmp_kern_mock_rtl.fea'
360+
fea_temp = TEMP_DIR / fea_example.name
350361
f = defcon.Font(ufo_path)
351362
args = Defaults()
352363
args.input_file = ufo_path
353364
args.output_name = fea_temp
354365
run(f, args)
355366
assert read_file(fea_example) == read_file(fea_temp)
356-
fea_temp.unlink()
357367

358368

359369
def test_example_trim(capsys):
360370
ufo_path = TEST_DIR / 'kern_example.ufo'
361371
fea_example = TEST_DIR / 'kern_example_trim.fea'
362-
fea_temp = TEST_DIR / 'tmp_kern_example_trim.fea'
372+
fea_temp = TEMP_DIR / fea_example.name
363373
f = defcon.Font(ufo_path)
364374
args = Defaults()
365375
args.input_file = ufo_path

0 commit comments

Comments
 (0)