Mercurial > piecrust2
diff tests/conftest.py @ 582:d8d9e0424a72
tests: Fix (hopefully) time-sensitive tests.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Wed, 30 Dec 2015 20:41:16 -0800 |
parents | a65f04ddbea2 |
children | 1eda551ee681 |
line wrap: on
line diff
--- a/tests/conftest.py Wed Dec 30 14:49:44 2015 -0800 +++ b/tests/conftest.py Wed Dec 30 20:41:16 2015 -0800 @@ -449,13 +449,32 @@ test_time_iso8601 = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.gmtime(ctx.time)) - replacements = { - '%test_time_iso8601%': test_time_iso8601} - for token, repl in replacements.items(): - left = left.replace(token, repl) - right = right.replace(token, repl) + test_time_iso8601_pattern = '%test_time_iso8601%' + + left_time_indices = [] + i = -1 + while True: + i = left.find(test_time_iso8601_pattern, i + 1) + if i >= 0: + left_time_indices.append(i) + left = (left[:i] + test_time_iso8601 + + left[i + len(test_time_iso8601_pattern):]) + else: + break for i in range(min(len(left), len(right))): + if i in left_time_indices: + # This is where the time starts. Let's compare that the time + # values are within a few seconds of each other (usually 0 or 1). + right_time_str = right[i:i + len(test_time_iso8601)] + right_time = time.strptime(right_time_str, '%Y-%m-%dT%H:%M:%SZ') + left_time = time.gmtime(ctx.time) + difference = time.mktime(left_time) - time.mktime(right_time) + print("Got time difference: %d" % difference) + if abs(difference) <= 2: + print("(good enough, moving to end of timestamp)") + i += len(test_time_iso8601) + if left[i] != right[i]: start = max(0, i - 15) l_end = min(len(left), i + 15)