(self)
| 757 | |
| 758 | # Test iterators with 'x in y' and 'x not in y'. |
| 759 | def test_in_and_not_in(self): |
| 760 | for sc5 in IteratingSequenceClass(5), SequenceClass(5): |
| 761 | for i in range(5): |
| 762 | self.assertIn(i, sc5) |
| 763 | for i in "abc", -1, 5, 42.42, (3, 4), [], {1: 1}, 3-12j, sc5: |
| 764 | self.assertNotIn(i, sc5) |
| 765 | |
| 766 | self.assertIn(ALWAYS_EQ, IteratorProxyClass(iter([1]))) |
| 767 | self.assertIn(ALWAYS_EQ, SequenceProxyClass([1])) |
| 768 | self.assertNotIn(ALWAYS_EQ, IteratorProxyClass(iter([NEVER_EQ]))) |
| 769 | self.assertNotIn(ALWAYS_EQ, SequenceProxyClass([NEVER_EQ])) |
| 770 | self.assertIn(NEVER_EQ, IteratorProxyClass(iter([ALWAYS_EQ]))) |
| 771 | self.assertIn(NEVER_EQ, SequenceProxyClass([ALWAYS_EQ])) |
| 772 | |
| 773 | self.assertRaises(TypeError, lambda: 3 in 12) |
| 774 | self.assertRaises(TypeError, lambda: 3 not in map) |
| 775 | self.assertRaises(ZeroDivisionError, lambda: 3 in BadIterableClass()) |
| 776 | |
| 777 | d = {"one": 1, "two": 2, "three": 3, 1j: 2j} |
| 778 | for k in d: |
| 779 | self.assertIn(k, d) |
| 780 | self.assertNotIn(k, d.values()) |
| 781 | for v in d.values(): |
| 782 | self.assertIn(v, d.values()) |
| 783 | self.assertNotIn(v, d) |
| 784 | for k, v in d.items(): |
| 785 | self.assertIn((k, v), d.items()) |
| 786 | self.assertNotIn((v, k), d.items()) |
| 787 | |
| 788 | f = open(TESTFN, "w", encoding="utf-8") |
| 789 | try: |
| 790 | f.write("a\n" "b\n" "c\n") |
| 791 | finally: |
| 792 | f.close() |
| 793 | f = open(TESTFN, "r", encoding="utf-8") |
| 794 | try: |
| 795 | for chunk in "abc": |
| 796 | f.seek(0, 0) |
| 797 | self.assertNotIn(chunk, f) |
| 798 | f.seek(0, 0) |
| 799 | self.assertIn((chunk + "\n"), f) |
| 800 | finally: |
| 801 | f.close() |
| 802 | try: |
| 803 | unlink(TESTFN) |
| 804 | except OSError: |
| 805 | pass |
| 806 | |
| 807 | # Test iterators with operator.countOf (PySequence_Count). |
| 808 | def test_countOf(self): |
nothing calls this directly
no test coverage detected