Пример #1
0
 def test_is_iterable_where(self, value):
     pred = is_iterable_where(is_eq(True), is_eq(False))
     with self.subTest('explain=True == explain=False'):
         self.assertEqual(pred(value), pred.explain(value).valid)
     with self.subTest('pred correct'):
         self.assertEqual(pred(value), value
                          in (correct_tuple, correct_list))
Пример #2
0
 def test_wrapper_predicate(self):
     wrapper = Wrapper()
     with self.assertRaises(TypeError):
         wrapper(None)
     wrapper.wrap(is_eq(0))
     self._test(wrapper, 0, True)
     wrapper.wrap(is_eq(1))
     self._test(wrapper, 0, False)
Пример #3
0
 def test_is_object_where(self, value):
     pred = is_object_where(foo=is_eq(True), bar=is_eq(False))
     with self.subTest('explain=True == explain=False'):
         self.assertEqual(pred(value), pred.explain(value).valid)
     with self.subTest('pred correct'):
         self.assertEqual(
             pred(value),
             (isinstance(value, object) and getattr(value, 'foo', False)
              and not getattr(value, 'bar', True)))
Пример #4
0
 def test_is_superdict_where(self, value):
     pred = is_superdict_where(foo=is_eq(True), bar=is_eq(False))
     with self.subTest('explain=True == explain=False'):
         self.assertEqual(pred(value), pred.explain(value).valid)
     with self.subTest('pred correct'):
         self.assertEqual(
             pred(value),
             isinstance(value, dict)
             and all(key in value and val == value[key]
                     for key, val in correct_dict.items()))
Пример #5
0
 def test_is_set_of(self, value):
     pred = is_set_of(is_eq(True))
     with self.subTest('explain=True == explain=False'):
         self.assertEqual(pred(value), pred.explain(value).valid)
     with self.subTest('pred correct'):
         self.assertEqual(pred(value),
                          isinstance(value, set) and all(value))
Пример #6
0
 def test_correct(self):
     pred = is_eq(Get('a'))
     for context, value, expected in [
         ({
             'a': 0
         }, 0, True),
         ({
             'a': 0
         }, 1, False),
         ({
             'a': 1
         }, 0, False),
         ({
             'a': 1
         }, 1, True),
         ({
             'b': 1
         }, 1, False),
         ({}, 1, False),
     ]:
         with self.subTest(
                 'explain=True == explain=False; {}; {}; {}'.format(
                     context, value, expected)):
             self.assertEqual(pred(value, context=context),
                              pred.explain(value, context).valid)
         with self.subTest('pred correct; {}; {}; {}'.format(
                 context, value, expected)):
             self.assertEqual(pred(value, context=context), expected)
Пример #7
0
 def test_create_is_all_with_ands(self):
     preds = [is_eq(i) for i in range(5)]
     normal = is_all(*preds)
     with_ands = preds[0]
     for pred in preds[1:]:
         with_ands = with_ands & pred
     self.assertEqual(normal._predicates, with_ands._predicates)
Пример #8
0
 def test_nested_is_all_flattens(self):
     predicates = [is_eq(i) for i in range(5)]
     predicate = is_all(
         predicates[0],
         is_all(
             predicates[1],
             is_all(
                 predicates[2],
                 predicates[3],
             ),
         ),
         predicates[4],
     )
     self.assertEqual(predicate._predicates, predicates)
Пример #9
0
 def test_is_dict_where(self, value):
     pred = is_dict_where(foo=is_eq(True), bar=is_eq(False))
     with self.subTest('explain=True == explain=False'):
         self.assertEqual(pred(value), pred.explain(value).valid)
     with self.subTest('pred correct'):
         self.assertEqual(pred(value), value == correct_dict)
Пример #10
0
 def test_eq(self, a, b):
     pred = is_eq(a)
     with self.subTest('explain=True == explain=False'):
         self.assertEqual(pred(b), pred.explain(b).valid)
     with self.subTest('pred correct'):
         self.assertEqual(pred(b), a == b)
Пример #11
0
 def test_eq_to_self(self, a):
     pred = is_eq(a)
     with self.subTest('explain=True == explain=False'):
         self.assertEqual(pred(a), pred.explain(a).valid)
     with self.subTest('pred correct'):
         self.assertEqual(pred(a), a == a)