コード例 #1
0
  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()
コード例 #2
0
  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()
コード例 #3
0
  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()
コード例 #4
0
 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()
コード例 #5
0
  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()
コード例 #6
0
  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()
コード例 #7
0
 def setUp(self):
   super(MutationPoolTest, self).setUp()
   self.pool = context.MutationPool()