Exemplo n.º 1
0
    def testcreate_singleton(self):

        s1 = self.s1
        s2 = self.s2
        s1.foo = 1
        s2.foo = 2

        s3 = Singleton('s1')

        self.assertNotEqual(s1.foo, s2.foo)
        self.assertEqual(s1.foo, s3.foo)

        s3.__del_instance__('s1')

        s4 = Singleton('s1')

        self.assertRaises(AttributeError, getattr, s4, 'foo')

        error_singleton = type('newsingleton', (Singleton, ),
                               {'__init__': lambda self: None})

        self.assertRaises(TypeError, error_singleton, 's1')

        newsingleton = type('newsingleton', (Singleton, ), {})

        ns = newsingleton('s2')

        self.assertEquals(ns._instance_name, 's2')
        self.assertRaises(AttributeError, getattr, ns, 'foo')
Exemplo n.º 2
0
    def test_num_instances(self):

        self.assertEquals(Singleton._num_instances(), 2)

        Singleton.__del_instance__('s1')

        self.assertEquals(Singleton._num_instances(), 1)
Exemplo n.º 3
0
    def tearDown(self):
        Singleton.__del_instance__('s1')
        Singleton.__del_instance__('s2')

        self.assertEquals(Singleton._num_instances(), 0)