@@ -956,6 +956,137 @@ def test_literal_chain_search(self):
956
956
print (results )
957
957
self .assertEqual (len (results ), 4 )
958
958
959
+ def test_re_chain_replace (self ):
960
+ """Test for `re` search and replace."""
961
+
962
+ self .mktemp (
963
+ 'searches.txt' ,
964
+ content = self .dedent (
965
+ '''
966
+ search1
967
+ search1
968
+
969
+ search2
970
+ search2
971
+
972
+ search3
973
+ search3
974
+
975
+ search1, search2, search3
976
+ '''
977
+ ).encode ('utf-8' )
978
+ )
979
+
980
+ after = self .dedent (
981
+ '''
982
+ replace1
983
+ replace1
984
+
985
+ replace2
986
+ replace2
987
+
988
+ search3
989
+ search3
990
+
991
+ replace1, replace2, search3
992
+ '''
993
+ )
994
+
995
+ search_params = rc .Search (True )
996
+ search_params .add ('search1' , 'replace1' , rc .IGNORECASE )
997
+ search_params .add ('search2' , 'replace2' , rc .IGNORECASE )
998
+
999
+ file_id = 0
1000
+ encoding = None
1001
+ context = (0 , 0 )
1002
+ flags = 0
1003
+ backup_ext = 'rum-bak' ,
1004
+ max_count = None
1005
+
1006
+ fs = rc ._FileSearch (
1007
+ search_params ,
1008
+ self .get_file_attr ('searches.txt' ),
1009
+ file_id ,
1010
+ flags ,
1011
+ context ,
1012
+ encoding ,
1013
+ backup_ext ,
1014
+ max_count
1015
+ )
1016
+
1017
+ for result in fs .run ():
1018
+ if result .error is not None :
1019
+ print ('' .join (result .error ))
1020
+
1021
+ with codecs .open (self .norm ('searches.txt' ), 'r' , encoding = 'utf-8' ) as f :
1022
+ self .assertEqual (f .read (), after )
1023
+
1024
+ def test_regex_chain_replace (self ):
1025
+ """Test for `regex` search and replace."""
1026
+
1027
+ self .mktemp (
1028
+ 'searches.txt' ,
1029
+ content = self .dedent (
1030
+ '''
1031
+ search1
1032
+ search1
1033
+
1034
+ search2
1035
+ search2
1036
+
1037
+ search3
1038
+ search3
1039
+
1040
+ search1, search2, search3
1041
+ '''
1042
+ ).encode ('utf-8' )
1043
+ )
1044
+
1045
+ after = self .dedent (
1046
+ '''
1047
+ replace1
1048
+ replace1
1049
+
1050
+ replace2
1051
+ replace2
1052
+
1053
+ search3
1054
+ search3
1055
+
1056
+ replace1, replace2, search3
1057
+ '''
1058
+ )
1059
+
1060
+ search_params = rc .Search (True )
1061
+ search_params .add ('search1' , 'replace1' , rc .IGNORECASE )
1062
+ search_params .add ('search2' , 'replace2' , rc .IGNORECASE )
1063
+
1064
+ file_id = 0
1065
+ encoding = None
1066
+ context = (0 , 0 )
1067
+ flags = 0
1068
+ backup_ext = 'rum-bak' ,
1069
+ max_count = None
1070
+
1071
+ fs = rc ._FileSearch (
1072
+ search_params ,
1073
+ self .get_file_attr ('searches.txt' ),
1074
+ file_id ,
1075
+ flags ,
1076
+ context ,
1077
+ encoding ,
1078
+ backup_ext ,
1079
+ max_count ,
1080
+ regex_mode = rc .REGEX_MODE
1081
+ )
1082
+
1083
+ for result in fs .run ():
1084
+ if result .error is not None :
1085
+ print ('' .join (result .error ))
1086
+
1087
+ with codecs .open (self .norm ('searches.txt' ), 'r' , encoding = 'utf-8' ) as f :
1088
+ self .assertEqual (f .read (), after )
1089
+
959
1090
def test_literal_chain_replace (self ):
960
1091
"""Test for literal search and replace."""
961
1092
0 commit comments