11import defcon
22import sys
3+
4+ from afdko .fdkutils import get_temp_dir_path
35from pathlib import Path
46
7+
58sys .path .append (".." )
69from kernFeatureWriter import *
710
11+
812TEST_DIR = Path (__file__ ).parent
13+ TEMP_DIR = Path (get_temp_dir_path ())
914
1015
1116class 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
178214def 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
193228def 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
206240def 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
224257def 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
242274def 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
267296def 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
284312def 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
297324def 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
327339def 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
343354def 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
359369def 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