1from PyObjCTools.TestSupport import *
2
3import objc
4
5try:
6    long
7except NameError:
8    long = int
9
10class TestContext (TestCase):
11    def test_context(self):
12        self.assertEqual(objc.context._registry, {})
13
14        v = object()
15
16        h = objc.context.register(v)
17        self.assertIsInstance(h, (int, long))
18        self.assertIn(h, objc.context._registry)
19        self.assertIs(objc.context._registry[h], v)
20
21        self.assertIs(objc.context.get(h), v)
22
23        objc.context.unregister(object())
24        self.assertIn(h, objc.context._registry)
25        self.assertIs(objc.context._registry[h], v)
26
27        objc.context.unregister(v)
28        self.assertNotIn(h, objc.context._registry)
29
30        self.assertRaises(KeyError, objc.context.get, h)
31
32
33if __name__ == "__main__":
34    main()
35