def testPrepareLayerForBakingSuccess(self): self.mox.StubOutWithMock(taskqueue, 'add') self.mox.StubOutWithMock(baker, '_GetBakerURL') mock_divisions = [self.mox.CreateMock(model.Division) for _ in xrange(2)] mock_division_query = self.mox.CreateMockAnything() mock_entity_query = self.mox.CreateMockAnything() mock_entities = [self.mox.CreateMock(model.Entity) for _ in xrange(2)] mock_entities[0].baked = True mock_entities[1].baked = True mock_layer = self.mox.CreateMockAnything() mock_layer.division_set = mock_division_query mock_layer.entity_set = mock_entity_query dummy_url = object() dummy_division_cursor = object() dummy_entity_cursor = object() mock_division_query.fetch(1000).AndReturn(mock_divisions[:1]) mock_divisions[0].delete() mock_division_query.cursor().AndReturn(dummy_division_cursor) mock_division_query.with_cursor(dummy_division_cursor).AndReturn( mock_division_query) mock_division_query.fetch(1000).AndReturn(mock_divisions[1:]) mock_divisions[1].delete() mock_division_query.cursor().AndReturn(dummy_division_cursor) mock_division_query.with_cursor(dummy_division_cursor).AndReturn( mock_division_query) mock_division_query.fetch(1000).AndReturn([]) mock_entity_query.filter('baked', True).AndReturn(mock_entity_query) mock_entity_query.fetch(1000).AndReturn(mock_entities) mock_entities[0].put() mock_entities[1].put() mock_entity_query.cursor().AndReturn(dummy_entity_cursor) mock_entity_query.with_cursor(dummy_entity_cursor).AndReturn( mock_entity_query) mock_entity_query.fetch(1000).AndReturn([]) baker._GetBakerURL(mock_layer).AndReturn(dummy_url) baker._GetBakerURL(mock_layer).AndReturn(dummy_url) taskqueue.add(url=dummy_url, params={ 'stage': 'subdivide', 'north': 90, 'south': -90, 'east': 180, 'west': -180 }) taskqueue.add(url=dummy_url, params={'stage': 'monitor'}, countdown=settings.BAKER_MONITOR_DELAY) self.mox.ReplayAll() baker._PrepareLayerForBaking(mock_layer) self.assertEqual(mock_entities[0].baked, None) self.assertEqual(mock_entities[1].baked, None)
def testCreateSuccess(self): self.mox.StubOutWithMock(taskqueue, 'add', use_mock_anything=True) self.mox.StubOutWithMock(baker, '_GetBakerURL') handler = baker.Baker() layer = model.Layer(name='a', world='earth', auto_managed=True) layer.put() dummy_url = object() baker._GetBakerURL(layer).AndReturn(dummy_url) taskqueue.add(url=dummy_url, params={'stage': 'setup'}) self.mox.ReplayAll() handler.Create(layer)
def testPrepareLayerForBakingInterrupt(self): self.mox.StubOutWithMock(taskqueue, 'add') self.mox.StubOutWithMock(baker, '_GetBakerURL') mock_layer = self.mox.CreateMockAnything() mock_layer.division_set = self.mox.CreateMockAnything() dummy_url = object() mock_layer.division_set.fetch(1000).AndRaise(runtime.DeadlineExceededError) baker._GetBakerURL(mock_layer).AndReturn(dummy_url) taskqueue.add(url=dummy_url, params={'stage': 'setup'}) self.mox.ReplayAll() baker._PrepareLayerForBaking(mock_layer)
def testCheckIfLayerIsDoneWhenLayerIsNotDone(self): self.mox.StubOutWithMock(taskqueue, 'add') self.mox.StubOutWithMock(baker, '_GetBakerURL') mock_layer = self.mox.CreateMockAnything() mock_layer.entity_set = self.mox.CreateMockAnything() mock_query = self.mox.CreateMockAnything() dummy_url = object() mock_layer.entity_set.filter('baked', None).AndReturn(mock_query) mock_query.get().AndReturn(object()) baker._GetBakerURL(mock_layer).AndReturn(dummy_url) taskqueue.add(url=dummy_url, params={'stage': 'monitor'}, countdown=settings.BAKER_MONITOR_DELAY) self.mox.ReplayAll() baker._CheckIfLayerIsDone(mock_layer)
def testGetBakerURL(self): layer = model.Layer(name='a', world='earth', auto_managed=True) layer_id = layer.put().id() self.assertEqual(baker._GetBakerURL(layer), '/baker-update/%d' % layer_id) self.assertRaises(AttributeError, baker._GetBakerURL, object())