def testFlush(self): """Test flush method.""" self.pool = context.MutationPool(1000) m = mox.Mox() m.StubOutWithMock(datastore, 'Delete', use_mock_anything=True) m.StubOutWithMock(datastore, 'Put', use_mock_anything=True) e1 = TestEntity() e2 = TestEntity(key_name='flushme') # Record Calls self.record_put([e1._populate_internal_entity()]) self.record_delete([e2.key()]) m.ReplayAll() try: # test, verify self.pool.put(e1) self.assertEquals([e1._populate_internal_entity()], self.pool.puts.items) self.pool.delete(e2) self.assertEquals([e2.key()], self.pool.deletes.items) self.pool.flush() self.assertEquals([], self.pool.puts.items) self.assertEquals([], self.pool.deletes.items) m.VerifyAll() finally: m.UnsetStubs()
def testDeleteTooManyEntities(self): """Test putting more than allowed entity count.""" max_entity_count = context.MAX_ENTITY_COUNT self.pool = context.MutationPool() # default size is MAX_ENTITY_COUNT m = mox.Mox() m.StubOutWithMock(datastore, 'Delete', use_mock_anything=True) entities = [] for i in range(max_entity_count + 50): entities.append(TestEntity(key_name='die%d' % i)) # Record Calls self.record_delete([e.key() for e in entities[:max_entity_count]]) m.ReplayAll() try: # test, verify for e in entities: self.pool.delete(e) # only 50 entities should be left. self.assertEquals(50, self.pool.deletes.length) m.VerifyAll() finally: m.UnsetStubs()
def testPutTooManyEntities(self): """Test putting more than allowed entity count.""" max_entity_count = 100 self.pool = context.MutationPool(max_entity_count=max_entity_count) m = mox.Mox() m.StubOutWithMock(datastore, 'Put', use_mock_anything=True) entities = [] for i in range(max_entity_count + 50): entities.append(TestEntity()) # Record Calls self.record_put([e._populate_internal_entity() for e in entities[:max_entity_count]]) m.ReplayAll() try: # test, verify for e in entities: self.pool.put(e) # only 50 entities should be left. self.assertEquals(50, self.pool.puts.length) m.VerifyAll() finally: m.UnsetStubs()
def testPoolWithForceWrites(self): class MapreduceSpec: def __init__(self): self.params = {'force_ops_writes':True} pool = context.MutationPool(mapreduce_spec=MapreduceSpec()) m = mox.Mox() m.StubOutWithMock(datastore, 'Put', use_mock_anything=True) m.StubOutWithMock(datastore, 'Delete', use_mock_anything=True) e1 = TestEntity() e2 = TestEntity(key_name='key2') self.record_put([e1._populate_internal_entity()], True) self.record_delete([e2.key()], True) m.ReplayAll() try: # test, verify pool.put(e1) pool.delete(e2.key()) self.assertEquals([e1._populate_internal_entity()], pool.puts.items) self.assertEquals([e2.key()], pool.deletes.items) pool.flush() m.VerifyAll() finally: m.UnsetStubs()
def testDeleteOverPoolSize(self): """Test deleting more than pool size.""" self.pool = context.MutationPool(500) m = mox.Mox() m.StubOutWithMock(datastore, 'Delete', use_mock_anything=True) e1 = TestEntity(key_name='goingaway') e2 = TestEntity(key_name='x' * 500) # Record Calls self.record_delete([e1.key()]) m.ReplayAll() try: # test, verify self.pool.delete(e1) self.assertEquals([e1.key()], self.pool.deletes.items) self.pool.delete(e2) self.assertEquals([e2.key()], self.pool.deletes.items) m.VerifyAll() finally: m.UnsetStubs()
def testPutOverPoolSize(self): """Test putting more than pool size.""" self.pool = context.MutationPool(1000) m = mox.Mox() m.StubOutWithMock(datastore, 'Put', use_mock_anything=True) e1 = TestEntity() e2 = TestEntity(tag=' ' * 1000) # Record Calls self.record_put([e1._populate_internal_entity()]) m.ReplayAll() try: # test, verify self.pool.put(e1) self.assertEquals([e1._populate_internal_entity()], self.pool.puts.items) self.pool.put(e2) self.assertEquals([e2._populate_internal_entity()], self.pool.puts.items) m.VerifyAll() finally: m.UnsetStubs()
def setUp(self): super(MutationPoolTest, self).setUp() self.pool = context.MutationPool()