@@ -102,27 +102,30 @@ def _msg(msg, force=False):
102102
103103
104104def get_file_lines (filename , ignore_regexp = None , replace_regexp = None ,
105- replace_what = '.' , replace_with = '.' ):
105+ replace_what = '.' , replace_with = '.' , strip_blanks = True ):
106106 """ Opens source file <filename> and load its lines,
107107 discarding those not important for comparison.
108108 """
109109 from api .utils import open_file
110110 with open_file (filename , 'rt' , 'utf-8' ) as f :
111111 lines = [x for x in f ]
112112
113- if ignore_regexp is not None :
114- r = re .compile (ignore_regexp )
115- lines = [x for x in lines if not r .search (x )]
113+ if ignore_regexp is not None :
114+ r = re .compile (ignore_regexp )
115+ lines = [x for x in lines if not r .search (x )]
116116
117- if replace_regexp is not None and replace_what and replace_with is not None :
118- r = re .compile (replace_regexp )
119- lines = [x .replace (replace_what , replace_with , 1 ) if r .search (x ) else x for x in lines ]
117+ if replace_regexp is not None and replace_what and replace_with is not None :
118+ r = re .compile (replace_regexp )
119+ lines = [x .replace (replace_what , replace_with , 1 ) if r .search (x ) else x for x in lines ]
120+
121+ if strip_blanks :
122+ lines = [x .rstrip () for x in lines if x .rstrip ()]
120123
121124 return lines
122125
123126
124- def is_same_file (fname1 , fname2 , ignore_regexp = None ,
125- replace_regexp = None , replace_what = '.' , replace_with = '.' , diff = None , is_binary = False ):
127+ def is_same_file (fname1 , fname2 , ignore_regexp = None , replace_regexp = None , replace_what = '.' , replace_with = '.' ,
128+ diff = None , is_binary = False , strip_blanks = True ):
126129 """ Test if two files are the same.
127130
128131 If ignore_regexp is passed, it must be a Regular Expression
@@ -143,8 +146,8 @@ def is_same_file(fname1, fname2, ignore_regexp=None,
143146 if is_binary :
144147 return open (fname1 , 'rb' ).read () == open (fname2 , 'rb' ).read ()
145148
146- r1 = get_file_lines (fname1 , ignore_regexp , replace_regexp , replace_what , replace_with )
147- r2 = get_file_lines (fname2 , ignore_regexp , replace_regexp , replace_what , replace_with )
149+ r1 = get_file_lines (fname1 , ignore_regexp , replace_regexp , replace_what , replace_with , strip_blanks )
150+ r2 = get_file_lines (fname2 , ignore_regexp , replace_regexp , replace_what , replace_with , strip_blanks )
148151 result = (r1 == r2 )
149152
150153 if not result :
@@ -278,8 +281,8 @@ def testPREPRO(fname, pattern_=None, inline=None):
278281
279282 with TempTestFile (func , tfname , UPDATE ):
280283 if not UPDATE :
281- result = is_same_file (okfile , tfname , replace_regexp = pattern_ ,
282- replace_what = ZXBASIC_ROOT , replace_with = _original_root )
284+ result = is_same_file (okfile , tfname , replace_regexp = pattern_ , replace_what = ZXBASIC_ROOT ,
285+ replace_with = _original_root , strip_blanks = True )
283286 else :
284287 updateTest (tfname , pattern_ )
285288 finally :
0 commit comments