tests/subfiles.py

changeset 95
a3536e51f6bc
parent 92
b8d72909d593
child 104
1ad664f783d6
--- a/tests/subfiles.py	Mon Jun 24 19:08:24 2019 +0300
+++ b/tests/subfiles.py	Mon Jun 24 19:21:49 2019 +0300
@@ -163,6 +163,8 @@
     '''
     import filecache
     cache = filecache.SubfileCache(model.ldraw_directories)
+    if model.header.valid:
+        cache.reference_stack.append(model.header.name)
     failed_subfiles = set()
     for subfile_reference, has_invertnext in subfile_references_with_invertnext(model):
         path = subfile_reference.subfile_path.lower()
@@ -173,13 +175,14 @@
             try:
                 subfile = cache.prepare_file(path)
             except filecache.CyclicalReferenceError as e:
+                subfile = None
                 failed_subfiles.add(path)
                 yield report_problem(
                     'cyclical-reference',
                     bad_object = subfile_reference,
                     chain = str(e),
                 )
-            if not subfile.valid:
+            if subfile and not subfile.valid:
                 yield report_problem(
                     'bad-subfile',
                     bad_object = subfile_reference,
@@ -187,7 +190,7 @@
                     problem_text = subfile.problem,
                 )
                 failed_subfiles.add(path)
-            else:
+            elif subfile:
                 # Test for use of moved-to files
                 import re
                 match = re.search(r'^\~Moved(?: to (.+))?$', subfile.description)

mercurial