def test_no_exception(self): with self.assertRaises(AssertionError) as cm: with allow_limit(2): pass # No exceptions raised exc = cm.exception self.assertEqual('No differences found: expected at most 2 matching differences', str(exc))
def test_allow_some(self): differences = [Extra('xxx'), Missing('yyy')] with self.assertRaises(DataError) as cm: with allow_limit(1): # <- Allows only 1 but there are 2! raise DataError('example error', differences) rejected = list(cm.exception.differences) self.assertEqual(differences, rejected)
def test_kwds(self): diff_set = set([ Missing('xxx', aaa='foo'), Missing('yyy', aaa='bar'), Extra('zzz', aaa='foo'), ]) with self.assertRaises(DataError) as cm: # Allows 2 with aaa='foo' and there are two (only aaa='bar' is rejected). with allow_limit(2, 'example message', aaa='foo'): raise DataError('example error', diff_set) rejected = set(cm.exception.differences) self.assertEqual(rejected, set([Missing('yyy', aaa='bar')])) with self.assertRaises(DataError) as cm: # Allows 1 with aaa='foo' but there are 2 (all are rejected)! with allow_limit(1, 'example message', aaa='foo'): raise DataError('example error', diff_set) rejected = set(cm.exception.differences) self.assertEqual(rejected, diff_set)
def _allowAny(self, number=None, msg=None, **kwds_filter): if number: return datatest.allow_limit(number, msg, **kwds_filter) return datatest.allow_any(msg, **kwds_filter)
def test_allow_all(self): with allow_limit(2): # <- Allows 2 and there are only 2. raise DataError('example error', [Missing('xxx'), Missing('yyy')]) with allow_limit(3): # <- Allows 3 and there are only 2. raise DataError('example error', [Missing('xxx'), Missing('yyy')])