From 601b67145cb337f079f7ce07c6ec99d00c080cc0 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Mon, 7 Jun 2010 09:41:59 -0400 Subject: [PATCH] Fixed a flaky test which was broken in python 2.7rc1. --- core/tests/engine_test.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/core/tests/engine_test.py b/core/tests/engine_test.py index 528843e2..56b83c3a 100644 --- a/core/tests/engine_test.py +++ b/core/tests/engine_test.py @@ -12,9 +12,10 @@ from nose.tools import eq_ from hsutil import job from hsutil.decorators import log_calls +from hsutil.misc import first from hsutil.testcase import TestCase -from .. import engine, fs +from .. import engine from ..engine import * class NamedObject(object): @@ -46,6 +47,15 @@ def get_test_group(): result.add_match(m3) return result +def assert_match(m, name1, name2): + # When testing matches, whether objects are in first or second position very often doesn't + # matter. This function makes this test more convenient. + if m.first.name == name1: + eq_(m.second.name, name2) + else: + eq_(m.first.name, name2) + eq_(m.second.name, name1) + class TCgetwords(TestCase): def test_spaces(self): self.assertEqual(['a', 'b', 'c', 'd'], getwords("a b c d")) @@ -351,14 +361,10 @@ class GetMatches(TestCase): l = [NamedObject("foo bar"),NamedObject("bar bleh"),NamedObject("a b c foo")] r = getmatches(l) self.assertEqual(2,len(r)) - seek = [m for m in r if m.percentage == 50] #"foo bar" and "bar bleh" - m = seek[0] - self.assertEqual(['foo','bar'],m.first.words) - self.assertEqual(['bar','bleh'],m.second.words) - seek = [m for m in r if m.percentage == 33] #"foo bar" and "a b c foo" - m = seek[0] - self.assertEqual(['foo','bar'],m.first.words) - self.assertEqual(['a','b','c','foo'],m.second.words) + m = first(m for m in r if m.percentage == 50) #"foo bar" and "bar bleh" + assert_match(m, 'foo bar', 'bar bleh') + m = first(m for m in r if m.percentage == 33) #"foo bar" and "a b c foo" + assert_match(m, 'foo bar', 'a b c foo') def test_null_and_unrelated_objects(self): l = [NamedObject("foo bar"),NamedObject("bar bleh"),NamedObject(""),NamedObject("unrelated object")]