view test/cmp_helper.py @ 8570:16e8bacb8f90

test: strftime formats; Runtime v Parsing error config.ini windows python strftime formats like "%2d" are not supported by windows python. So limit testing to non-win32 platform. In tests RuntimeError (not ParsingError) was returned for an invalid config.ini parse error with 3.12 and newer. Windows Python 3.11.4 returns RuntimeError as well. Changed guard that chooses RuntimeError to 3.11.4 or newer.
author John Rouillard <rouilj@ieee.org>
date Mon, 13 Apr 2026 13:28:58 -0400
parents 19bd4b413ed6
children
line wrap: on
line source

class StringFragmentCmpHelper:
    def compareStringFragments(self, s, fragments):
        """Compare a string agains a list of fragments where a tuple denotes a
        set of alternatives
        """
        pos = 0
        for frag in fragments:
            if type(frag) != tuple:
                self.assertEqual(s[pos:pos + len(frag)], frag)
                pos += len(frag)
            else:
                found = False
                for alt in frag:
                    if s[pos:pos + len(alt)] == alt:
                        pos += len(alt)
                        found = True
                        break

                if not found:
                    l = max(map(len, frag))
                    raise AssertionError('%s != %s' %
                                         (repr(s[pos:pos + l]), str(frag)))
        self.assertEqual(s[pos:], '')

Roundup Issue Tracker: http://roundup-tracker.org/