1b1751adaSGeorge Keishing#!/usr/bin/env python3 269c5c1c6SGeorge Keishingr""" 369c5c1c6SGeorge KeishingCustom rules file for robotframework-lint. 469c5c1c6SGeorge KeishingInstallation : pip3 install --upgrade robotframework-lint 569c5c1c6SGeorge KeishingExample usage: 669c5c1c6SGeorge Keishing python3 -m rflint -rA robot_standards -R robot_custom_rules.py . 769c5c1c6SGeorge Keishing""" 869c5c1c6SGeorge Keishing 9b1751adaSGeorge Keishingimport re 10b1751adaSGeorge Keishing 11b1751adaSGeorge Keishingfrom rflint.common import ERROR, SuiteRule 12b1751adaSGeorge Keishing 13b1751adaSGeorge Keishing 14b1751adaSGeorge Keishingclass ExtendInvalidTable(SuiteRule): 15b1751adaSGeorge Keishing r""" 1669c5c1c6SGeorge Keishing Extend robotframework-lint SuiteRule function for InvalidTable to allow a 1769c5c1c6SGeorge Keishing table section if it is a section of comments. 1869c5c1c6SGeorge Keishing e.g "*** Comments ***" 19b1751adaSGeorge Keishing """ 20*9c223095SGeorge Keishing 21b1751adaSGeorge Keishing severity = ERROR 22b1751adaSGeorge Keishing 23b1751adaSGeorge Keishing def apply(self, suite): 2469c5c1c6SGeorge Keishing r""" 2569c5c1c6SGeorge Keishing Walk through the code and report. 2669c5c1c6SGeorge Keishing """ 27b1751adaSGeorge Keishing for table in suite.tables: 28b1751adaSGeorge Keishing if not re.match( 29b1751adaSGeorge Keishing r"^(settings?|metadata|(test )?cases?|(user" 30b1751adaSGeorge Keishing r" )?keywords?|variables?|comments?)$", 31b1751adaSGeorge Keishing table.name, 32b1751adaSGeorge Keishing re.IGNORECASE, 33b1751adaSGeorge Keishing ): 34b1751adaSGeorge Keishing self.report( 35b1751adaSGeorge Keishing suite, 3669c5c1c6SGeorge Keishing table.name, 37b1751adaSGeorge Keishing table.linenumber, 38b1751adaSGeorge Keishing ) 39