コード例 #1
0
    def test_thread_locality(self):
        store = localstore.LocalStore()
        store['name'] = "Hi"
        q = Queue()

        def do_test():
            sleep(0.1)
            t = current_thread()
            name = t.name
            store[name] = 1
            store['name'] = name
            q.put(dict(store))

        threads = []
        for x in range(5):
            t = Thread(target=do_test, name='thread%x' % x)
            t.start()
            threads.append(t)
        for t in threads:
            t.join()
        # assert none of the thread stuff touched our queue
        self.assertEqual(store['name'], 'Hi')
        self.assertEqual(q.qsize(), 5)
        qcontents = []
        while not q.empty():
            qcontents.append(q.get())
        self.assertEqual(len(qcontents), 5)
        for d in qcontents:
            self.assertEqual(len(d), 2)
            self.assertNotEqual(d['name'], 'Hi')
            self.assertEqual(d[d['name']], 1)
コード例 #2
0
ファイル: localstore.py プロジェクト: leotop/django_ukrhim
 def test_custom_clear(self):
     """Test that clear(glob) works as expected."""
     store = localstore.LocalStore()
     for x in (1, 2, 3, 4, 5):
         store['key_%s' % x] = 'value_%s' % x
         store['ex_%s' % x] = 'ecks_%s' % x
     self.assertEquals(len(store), 10)
     store.clear('*4')
     self.assertEquals(len(store), 8)
     store.clear('ex_*')
     self.assertEquals(len(store), 4)
     self.assertEquals(len(store.mget('key*')), 4)
     self.assertEquals(len(store.mget('*_2')), 1)
コード例 #3
0
ファイル: localstore.py プロジェクト: leotop/django_ukrhim
 def test_basic_operation(self):
     store = localstore.LocalStore()
     for x in (1, 2, 3, 4, 5):
         store['key%s' % x] = "value%s" % x
     self.assertEquals(store.key3, "value3")
     self.assertEquals(store['key4'], "value4")
     self.assertEquals(len(store), 5)
     self.assertEquals(sorted(list(store)), sorted(store.keys()))
     self.assertEquals(store.setdefault('key6', 'value6'), 'value6')
     self.assertEquals(store['key6'], 'value6')
     del store['key2']
     self.assertEquals(len(store), 5)
     store.clear()
     self.assertEquals(len(store), 0)
コード例 #4
0
ファイル: localstore.py プロジェクト: leotop/django_ukrhim
    def test_thread_locality(self):
        from Queue import Queue
        try:
            from threading import Thread, current_thread
        except:
            #python 2.5 difference
            from threading import Thread
            from threading import currentThread as current_thread
        from time import sleep
        store = localstore.LocalStore()
        store['name'] = "Hi"
        q = Queue()

        def do_test():
            sleep(0.1)
            t = current_thread()
            try:
                name = t.name
            except AttributeError:
                #python 2.5 difference
                name = t.getName()
            store[name] = 1
            store['name'] = name
            q.put(dict(store))

        threads = []
        for x in range(5):
            t = Thread(target=do_test, name='thread%x' % x)
            t.start()
            threads.append(t)
        for t in threads:
            t.join()
        # assert none of the thread stuff touched our queue
        self.assertEquals(store['name'], 'Hi')
        self.assertEquals(q.qsize(), 5)
        qcontents = []
        while not q.empty():
            qcontents.append(q.get())
        self.assertEquals(len(qcontents), 5)
        for d in qcontents:
            self.assertEquals(len(d), 2)
            self.assertNotEquals(d['name'], 'Hi')
            self.assertEquals(d[d['name']], 1)