Ejemplo n.º 1
0
    def test_run_twice(self):
        self.setUpContext()
        self.context.dispatch('ok', self.obj)
        self.assertEqual(1, ResultModel.get_by_key_name('test').total)
        self.assertEqual(2, _FantasmTaskSemaphore.all().count())

        self.setUpContext(retryCount=1)  # assumes retry count is set correctly
        self.context.dispatch('ok', self.obj)
        self.assertEqual(1, ResultModel.get_by_key_name('test').total)
        self.assertEqual(2, _FantasmTaskSemaphore.all().count())
Ejemplo n.º 2
0
 def test_run_twice(self):
     self.setUpContext()
     self.context.dispatch('ok', self.obj)
     self.assertEqual(1, ResultModel.get_by_key_name('test').total)
     self.assertEqual(2, _FantasmTaskSemaphore.all().count())
     
     self.setUpContext(retryCount=1) # assumes retry count is set correctly
     self.context.dispatch('ok', self.obj)  
     self.assertEqual(1, ResultModel.get_by_key_name('test').total)
     self.assertEqual(2, _FantasmTaskSemaphore.all().count())
Ejemplo n.º 3
0
 def test_writeRunOnceSemaphore(self):
     sem = RunOnceSemaphore('foo', None)
     self.assertEqual(None, memcache.get('foo'))
     self.assertEqual(0, _FantasmTaskSemaphore.all(namespace='').count())
     success, payload = sem.writeRunOnceSemaphore('payload', transactional=self.TRANSACTIONAL)
     self.assertTrue(success)
     self.assertEqual('payload', payload)
     self.assertEqual('payload', memcache.get('foo'))
     self.assertEqual(1, _FantasmTaskSemaphore.all(namespace='').count())
     self.assertEqual('payload', _FantasmTaskSemaphore.all(namespace='').get().payload)
Ejemplo n.º 4
0
 def test_writeRunOnceSemaphore(self):
     sem = RunOnceSemaphore('foo', None)
     self.assertEqual(None, memcache.get('foo'))
     self.assertEqual(0, _FantasmTaskSemaphore.all().count())
     success, payload = sem.writeRunOnceSemaphore(
         'payload', transactional=self.TRANSACTIONAL)
     self.assertTrue(success)
     self.assertEqual('payload', payload)
     self.assertEqual('payload', memcache.get('foo'))
     self.assertEqual(1, _FantasmTaskSemaphore.all().count())
     self.assertEqual('payload', _FantasmTaskSemaphore.all().get().payload)
Ejemplo n.º 5
0
 def test(self):
     self.context.initialize() # queues the first task
     self.assertEqual(0, _FantasmTaskSemaphore.all().count())
     self.assertEqual(0, SimpleModel.all().count())
     tq = apiproxy_stub_map.apiproxy.GetStub('taskqueue')
     tasks = tq.GetTasks('default')
     runQueuedTasks(tasksOverride=tasks)
     self.assertEqual(1, _FantasmTaskSemaphore.all().count())
     self.assertEqual(1, SimpleModel.all().count())
     runQueuedTasks(tasksOverride=tasks)
     logging.info([e.key().name() for e in _FantasmTaskSemaphore.all().fetch(100)])
     self.assertEqual(1, _FantasmTaskSemaphore.all().count())
     self.assertEqual(1, SimpleModel.all().count())
Ejemplo n.º 6
0
 def test(self):
     self.context.initialize()  # queues the first task
     self.assertEqual(0, _FantasmTaskSemaphore.all().count())
     self.assertEqual(0, SimpleModel.all().count())
     tq = apiproxy_stub_map.apiproxy.GetStub('taskqueue')
     tasks = tq.GetTasks('default')
     runQueuedTasks(tasksOverride=tasks)
     self.assertEqual(1, _FantasmTaskSemaphore.all().count())
     self.assertEqual(1, SimpleModel.all().count())
     runQueuedTasks(tasksOverride=tasks)
     logging.info(
         [e.key().name() for e in _FantasmTaskSemaphore.all().fetch(100)])
     self.assertEqual(1, _FantasmTaskSemaphore.all().count())
     self.assertEqual(1, SimpleModel.all().count())
Ejemplo n.º 7
0
 def test_writeRunOnceSemaphore_second_time_False_memcache_expired(self):
     sem = RunOnceSemaphore('foo', None)
     self.assertEqual(None, memcache.get('foo'))
     self.assertEqual(0, _FantasmTaskSemaphore.all().count())
     success, payload = sem.writeRunOnceSemaphore('payload', transactional=self.TRANSACTIONAL)
     self.assertTrue(success)
     self.assertEqual('payload', payload)
     self.assertEqual('payload', memcache.get('foo'))
     self.assertEqual(1, _FantasmTaskSemaphore.all().count())
     self.assertEqual('payload', _FantasmTaskSemaphore.all().get().payload)
     memcache.delete('foo')
     success, payload = sem.writeRunOnceSemaphore('payload', transactional=self.TRANSACTIONAL)
     self.assertFalse(success)
     self.assertEqual('payload', payload)
     self.assertEqual('payload', memcache.get('foo'))
     self.assertEqual(1, _FantasmTaskSemaphore.all().count())
     self.assertEqual('payload', _FantasmTaskSemaphore.all().get().payload)
Ejemplo n.º 8
0
 def test_writeRunOnceSemaphore_second_time_wrong_payload_memcache(self):
     sem = RunOnceSemaphore('foo', None)
     self.assertEqual(None, memcache.get('foo'))
     self.assertEqual(0, _FantasmTaskSemaphore.all().count())
     success, payload = sem.writeRunOnceSemaphore('payload', transactional=self.TRANSACTIONAL)
     self.assertTrue(success)
     self.assertEqual('payload', payload)
     self.assertEqual('payload', memcache.get('foo'))
     self.assertEqual(1, _FantasmTaskSemaphore.all().count())
     self.assertEqual('payload', _FantasmTaskSemaphore.all().get().payload)
     memcache.set('foo', 'bar')
     success, payload = sem.writeRunOnceSemaphore('payload', transactional=self.TRANSACTIONAL)
     self.assertEqual(["Run-once semaphore memcache payload write error."], 
                      self.loggingDouble.messages['critical'])
     self.assertFalse(success)
     self.assertEqual('bar', payload)
     self.assertEqual('bar', memcache.get('foo'))
     self.assertEqual(1, _FantasmTaskSemaphore.all().count())
     self.assertEqual('payload', _FantasmTaskSemaphore.all().get().payload)
Ejemplo n.º 9
0
 def test_writeRunOnceSemaphore_second_time_wrong_payload_memcache(self):
     sem = RunOnceSemaphore('foo', None)
     self.assertEqual(None, memcache.get('foo'))
     self.assertEqual(0, _FantasmTaskSemaphore.all().count())
     success, payload = sem.writeRunOnceSemaphore(
         'payload', transactional=self.TRANSACTIONAL)
     self.assertTrue(success)
     self.assertEqual('payload', payload)
     self.assertEqual('payload', memcache.get('foo'))
     self.assertEqual(1, _FantasmTaskSemaphore.all().count())
     self.assertEqual('payload', _FantasmTaskSemaphore.all().get().payload)
     memcache.set('foo', 'bar')
     success, payload = sem.writeRunOnceSemaphore(
         'payload', transactional=self.TRANSACTIONAL)
     self.assertEqual(["Run-once semaphore memcache payload write error."],
                      self.loggingDouble.messages['critical'])
     self.assertFalse(success)
     self.assertEqual('bar', payload)
     self.assertEqual('bar', memcache.get('foo'))
     self.assertEqual(1, _FantasmTaskSemaphore.all().count())
     self.assertEqual('payload', _FantasmTaskSemaphore.all().get().payload)
Ejemplo n.º 10
0
 def test_writeRunOnceSemaphore_second_time_False_memcache_expired(self):
     sem = RunOnceSemaphore('foo', None)
     self.assertEqual(None, memcache.get('foo'))
     self.assertEqual(0, _FantasmTaskSemaphore.all(namespace='').count())
     success, payload = sem.writeRunOnceSemaphore(
         'payload', transactional=self.TRANSACTIONAL)
     self.assertTrue(success)
     self.assertEqual('payload', payload)
     self.assertEqual('payload', memcache.get('foo'))
     self.assertEqual(1, _FantasmTaskSemaphore.all(namespace='').count())
     self.assertEqual('payload',
                      _FantasmTaskSemaphore.all(namespace='').get().payload)
     memcache.delete('foo')
     success, payload = sem.writeRunOnceSemaphore(
         'payload', transactional=self.TRANSACTIONAL)
     self.assertFalse(success)
     self.assertEqual('payload', payload)
     self.assertEqual('payload', memcache.get('foo'))
     self.assertEqual(1, _FantasmTaskSemaphore.all(namespace='').count())
     self.assertEqual('payload',
                      _FantasmTaskSemaphore.all(namespace='').get().payload)
Ejemplo n.º 11
0
 def test_writeRunOnceSemaphore_second_time_wrong_payload_datastore(self):
     sem = RunOnceSemaphore('foo', None)
     self.assertEqual(None, memcache.get('foo'))
     self.assertEqual(0, _FantasmTaskSemaphore.all(namespace='').count())
     success, payload = sem.writeRunOnceSemaphore(
         'payload', transactional=self.TRANSACTIONAL)
     self.assertTrue(success)
     self.assertEqual('payload', payload)
     self.assertEqual('payload', memcache.get('foo'))
     self.assertEqual(1, _FantasmTaskSemaphore.all(namespace='').count())
     self.assertEqual('payload',
                      _FantasmTaskSemaphore.all(namespace='').get().payload)
     e = _FantasmTaskSemaphore.all(namespace='').get()
     e.payload = 'bar'
     e.put()
     memcache.delete('foo')
     success, payload = sem.writeRunOnceSemaphore(
         'payload', transactional=self.TRANSACTIONAL)
     self.assertEqual(1, len(self.loggingDouble.messages['critical']))
     self.assertTrue(self.loggingDouble.messages['critical'][0]\
                     .startswith("Run-once semaphore datastore payload write error."))
     self.assertFalse(success)
     self.assertEqual('bar', payload)
     self.assertEqual('bar', memcache.get('foo'))
     self.assertEqual(1, _FantasmTaskSemaphore.all(namespace='').count())
     self.assertEqual('bar',
                      _FantasmTaskSemaphore.all(namespace='').get().payload)
Ejemplo n.º 12
0
 def test_writeRunOnceSemaphore_second_time_wrong_payload_datastore(self):
     sem = RunOnceSemaphore('foo', None)
     self.assertEqual(None, memcache.get('foo'))
     self.assertEqual(0, _FantasmTaskSemaphore.all(namespace='').count())
     success, payload = sem.writeRunOnceSemaphore('payload', transactional=self.TRANSACTIONAL)
     self.assertTrue(success)
     self.assertEqual('payload', payload)
     self.assertEqual('payload', memcache.get('foo'))
     self.assertEqual(1, _FantasmTaskSemaphore.all(namespace='').count())
     self.assertEqual('payload', _FantasmTaskSemaphore.all(namespace='').get().payload)
     e = _FantasmTaskSemaphore.all(namespace='').get()
     e.payload = 'bar'
     e.put()
     memcache.delete('foo')
     success, payload = sem.writeRunOnceSemaphore('payload', transactional=self.TRANSACTIONAL)
     self.assertEqual(1, len(self.loggingDouble.messages['critical']))
     self.assertTrue(self.loggingDouble.messages['critical'][0]\
                     .startswith("Run-once semaphore datastore payload write error."))
     self.assertFalse(success)
     self.assertEqual('bar', payload)
     self.assertEqual('bar', memcache.get('foo'))
     self.assertEqual(1, _FantasmTaskSemaphore.all(namespace='').count())
     self.assertEqual('bar', _FantasmTaskSemaphore.all(namespace='').get().payload)