annotate test/cmp_helper.py @ 8266:43dc610bbd24

doc: known issues with possible dependent tests When reversing the testing order, two blocks of tests fail. Document these. I spent time trying to fix them, but got nowhere. Obviously I am missing something. But this doc gives future me or somebody else a starting point.
author John Rouillard <rouilj@ieee.org>
date Thu, 09 Jan 2025 09:32:10 -0500
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/