@@ -549,5 +549,90 @@ def test_redirect_monthdays_validation_error_2(self):
549549
550550 def test_parse_redirect_3 (self ):
551551 o = OpenWrt (native = self ._redirect_3_uci )
552- print (o .config )
553552 self .assertEqual (o .config , self ._redirect_3_netjson )
553+
554+ _redirect_4_uci = textwrap .dedent (
555+ """\
556+ package firewall
557+
558+ config defaults 'defaults'
559+
560+ config redirect 'redirect_Adblock DNS, port 53'
561+ option name 'Adblock DNS, port 53'
562+ option src 'lan'
563+ option proto 'tcpudp'
564+ option src_dport '53'
565+ option dest_port '53'
566+ option target 'DNAT'
567+ list weekdays 'mon'
568+ list weekdays 'tue'
569+ list weekdays 'wed'
570+ list monthdays '1'
571+ list monthdays '2'
572+ list monthdays '31'
573+ option src_ip '192.168.1.1'
574+ option src_dip '192.168.1.1'
575+ option src_mac 'AA:AA:AA:AA:AA:AA'
576+ option src_port '1-1064'
577+ option dest 'wan'
578+ option dest_ip '10.0.0.1'
579+ option ipset 'myipset'
580+ option mark '0xff'
581+ option start_date '2020-02-02'
582+ option stop_date '2020-03-02'
583+ option start_time '12:12:12'
584+ option stop_time '23:23:23'
585+ option utc_time '1'
586+ option family 'any'
587+ option reflection '0'
588+ option reflection_src 'external'
589+ option limit '3/sec'
590+ option limit_burst '5'
591+ option enabled '0'
592+ """
593+ )
594+
595+ _redirect_4_netjson = {
596+ "firewall" : {
597+ "redirects" : [
598+ {
599+ "name" : "Adblock DNS, port 53" ,
600+ "src" : "lan" ,
601+ "proto" : ["tcp" , "udp" ],
602+ "src_dport" : "53" ,
603+ "dest_port" : "53" ,
604+ "target" : "DNAT" ,
605+ "weekdays" : ["mon" , "tue" , "wed" ],
606+ "monthdays" : [1 , 2 , 31 ],
607+ "src_ip" : "192.168.1.1" ,
608+ "src_dip" : "192.168.1.1" ,
609+ "src_mac" : "AA:AA:AA:AA:AA:AA" ,
610+ "src_port" : "1-1064" ,
611+ "dest" : "wan" ,
612+ "dest_ip" : "10.0.0.1" ,
613+ "ipset" : "myipset" ,
614+ "mark" : "0xff" ,
615+ "start_date" : "2020-02-02" ,
616+ "stop_date" : "2020-03-02" ,
617+ "start_time" : "12:12:12" ,
618+ "stop_time" : "23:23:23" ,
619+ "utc_time" : True ,
620+ "family" : "any" ,
621+ "reflection" : False ,
622+ "reflection_src" : "external" ,
623+ "limit" : "3/sec" ,
624+ "limit_burst" : 5 ,
625+ "enabled" : False ,
626+ }
627+ ]
628+ }
629+ }
630+
631+ def test_render_redirect_4 (self ):
632+ o = OpenWrt (self ._redirect_4_netjson )
633+ expected = self ._tabs (self ._redirect_4_uci )
634+ self .assertEqual (o .render (), expected )
635+
636+ def test_parse_redirect_4 (self ):
637+ o = OpenWrt (native = self ._redirect_4_uci )
638+ self .assertEqual (o .config , self ._redirect_4_netjson )
0 commit comments