annotate test/cmp_helper.py @ 6632:e7143e4f6753

try to update to python 3.10.4 from 3.10.0 and try 3.11 Travis ci doesn't seem to tell us what python versions are supported. The one form that is supposed to show that doesn't work for me. Also it looks like nightly is suck at 3.10.0a5+ which isn't nightly. python 3.10.4 is released and current. 3.11 is pre-release/nightly so trying it to replace broken nightly. These upgrades may need to be reverted if invalid.
author John Rouillard <rouilj@ieee.org>
date Sat, 16 Apr 2022 17:04:20 -0400
parents 19bd4b413ed6
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5513
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
1 class StringFragmentCmpHelper:
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
2 def compareStringFragments(self, s, fragments):
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
3 """Compare a string agains a list of fragments where a tuple denotes a
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
4 set of alternatives
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
5 """
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
6 pos = 0
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
7 for frag in fragments:
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
8 if type(frag) != tuple:
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
9 self.assertEqual(s[pos:pos + len(frag)], frag)
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
10 pos += len(frag)
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
11 else:
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
12 found = False
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
13 for alt in frag:
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
14 if s[pos:pos + len(alt)] == alt:
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
15 pos += len(alt)
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
16 found = True
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
17 break
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
18
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
19 if not found:
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
20 l = max(map(len, frag))
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
21 raise AssertionError('%s != %s' %
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
22 (repr(s[pos:pos + l]), str(frag)))
19bd4b413ed6 be more lenient when comparing string results
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff changeset
23 self.assertEqual(s[pos:], '')

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