@@ -233,14 +233,38 @@ def test_import_scad(self):
233
233
self .assertTrue (hasattr (examples , 'scad_to_include' ))
234
234
self .assertTrue (hasattr (examples .scad_to_include , 'steps' ))
235
235
236
- # TODO: we should test that:
236
+ # Test that:
237
237
# A) scad files in the designated OpenSCAD library directories
238
238
# (path-dependent, see: solid.objects._openscad_library_paths())
239
- # are imported correctly. Not sure how to do this without writing
240
- # temp files to those directories. Seems like overkill for the moment
239
+ # are imported correctly.
240
+ # B) scad files in the designated app-install library directories
241
+ from solid import objects
242
+ lib_dirs = objects ._openscad_library_paths ()
243
+ for i , ld in enumerate (lib_dirs ):
244
+ if ld .as_posix () == '.' :
245
+ continue
246
+ if not ld .exists ():
247
+ continue
248
+ temp_dirname = f'test_{ i } '
249
+ d = ld / temp_dirname
250
+ d .mkdir (exist_ok = True )
251
+ p = d / 'scad_to_include.scad'
252
+ p .write_text (include_file .read_text ())
253
+ temp_file_str = f'{ temp_dirname } /scad_to_include.scad'
254
+
255
+ mod = import_scad (temp_file_str )
256
+ a = mod .steps (3 )
257
+ actual = scad_render (a )
258
+ expected = f"use <{ p .absolute ()} >\n \n \n steps(howmany = 3);"
259
+ self .assertEqual (actual , expected ,
260
+ f'Unexpected file contents at { p } for dir: { ld } ' )
261
+
262
+ # remove generated file and directories
263
+ p .unlink ()
264
+ d .rmdir ()
241
265
242
266
def test_multiple_import_scad (self ):
243
- # For Issue #172. Originally, multiple `import_scad()` calls would
267
+ # For Issue #172. Originally, multiple `import_scad()` calls would
244
268
# re-import the entire module, rather than cache a module after one use
245
269
include_file = self .expand_scad_path ("examples/scad_to_include.scad" )
246
270
mod1 = import_scad (include_file )
0 commit comments