def testCompile(self): firewall = MessageFirewall() self.assertEqual( [ SkipFirewallStatement(skip_label=345, if_tags=None, if_inverted=False, label=None), DoFirewallStatement( func_name="ruleTrue", func_args={"a": 3, "b": "ddd"}, markers=["spam"], if_tags=["analyzed", "skipped"], if_inverted=False, label=None, ), StopFirewallStatement(stop_marker="SPAM", if_tags=["a", "b", "c"], if_inverted=True, label=345), ], firewall.compile( firewall.parse( 'skip to 345\nif analyzed, skipped do ruleTrue(a=3, b="ddd") mark spam\n345: if not a, b, c stop as SPAM' ) ), )