def test_by_equality(self): """ The ``by_equality`` utility method takes a list of strings and produces a matcher that matches those strings by equality sequentially. """ matcher = OrderedLinesMatcher.by_equality('foo', 'bar') self.assertFalse(matcher('bar')) self.assertFalse(matcher('foo')) self.assertFalse(matcher('baz')) self.assertTrue(matcher('bar'))
def test_exhaustion(self): """ Once all matchers have been matched, further calls to ``match`` should raise an error. """ matcher = OrderedLinesMatcher.by_equality('foo') self.assertTrue(matcher('foo')) with self.assertRaises(RuntimeError) as cm: matcher('bar') self.assertEqual(str(cm.exception), 'Matcher exhausted, no more matchers to use')