summaryrefslogtreecommitdiff
path: root/lib/python2.7/test/test_undocumented_details.py
blob: a8fc280c67a1edb5381c84ce2bf95b27a2d421a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from test.test_support import run_unittest, check_py3k_warnings
import unittest

class TestImplementationComparisons(unittest.TestCase):

    def test_type_comparisons(self):
        self.assertTrue(str < int or str > int)
        self.assertTrue(int <= str or int >= str)
        self.assertTrue(cmp(int, str) != 0)
        self.assertTrue(int is int)
        self.assertTrue(str == str)
        self.assertTrue(int != str)

    def test_cell_comparisons(self):
        def f(x):
            if x:
                y = 1
            def g():
                return x
            def h():
                return y
            return g, h
        g, h = f(0)
        g_cell, = g.func_closure
        h_cell, = h.func_closure
        self.assertTrue(h_cell < g_cell)
        self.assertTrue(g_cell >= h_cell)
        self.assertEqual(cmp(g_cell, h_cell), 1)
        self.assertTrue(g_cell is g_cell)
        self.assertTrue(g_cell == g_cell)
        self.assertTrue(h_cell == h_cell)
        self.assertTrue(g_cell != h_cell)

def test_main():
    with check_py3k_warnings():
        run_unittest(TestImplementationComparisons)

if __name__ == '__main__':
    test_main()