tests/subfiles.py

changeset 92
b8d72909d593
parent 89
d2b277cb948e
child 95
a3536e51f6bc
--- a/tests/subfiles.py	Mon Jun 24 11:48:52 2019 +0300
+++ b/tests/subfiles.py	Mon Jun 24 17:31:47 2019 +0300
@@ -141,6 +141,20 @@
     severity = 'warning',
     message = 'flat subfile unnecessarily inverted using BFC INVERTNEXT'
 )
+@problem_type('mirrored-studs',
+    severity = 'warning',
+    message = lambda primitive: str.format(
+        '"{primitive}" should not be mirrored',
+        primitive = primitive,
+    )
+)
+@problem_type('mirrored-studs-indirect',
+    severity = 'warning',
+    message = lambda primitive: str.format(
+        '"{primitive}" should not be mirrored because it contains studs',
+        primitive = primitive,
+    )
+)
 def dependent_subfile_tests(model):
     '''
         Tests subfile references for such qualities that are dependent on the
@@ -209,6 +223,21 @@
                         'unnecessary-invertnext',
                         bad_object = subfile_reference,
                     )
+                from filecache import is_logo_stud_name
+                # Test whether any stud subfile is mirrored.
+                if is_logo_stud_name(subfile_reference.subfile_path) \
+                and subfile_reference.matrix.is_mirrored():
+                    yield report_problem(
+                        'mirrored-studs',
+                        bad_object = subfile_reference,
+                        primitive = subfile_reference.subfile_path,
+                    )
+                elif subfile.has_studs and subfile_reference.matrix.is_mirrored():
+                    yield report_problem(
+                        'mirrored-studs-indirect',
+                        bad_object = subfile_reference,
+                        primitive = subfile_reference.subfile_path,
+                    )
 
 def dimensions_description(dimensions):
     if isinstance(dimensions, str):

mercurial