def testFlushLogLargestItems(self):
    self.pool = context._MutationPool(max_entity_count=3)
    self.pool.put(TestEntity(tag='a'*1024*1024))
    self.assertRaises(apiproxy_errors.RequestTooLargeError, self.pool.flush)
    self.assertTrue(self.pool.puts._largest)

    self.pool = context._MutationPool(max_entity_count=3)
    self.pool.ndb_put(NdbTestEntity(tag='a'*1024*1024))
    self.assertRaises(apiproxy_errors.RequestTooLargeError, self.pool.flush)
    self.assertTrue(self.pool.ndb_puts._largest)
    def testFlushLogLargestItems(self):
        self.pool = context._MutationPool(max_entity_count=3)
        self.pool.put(TestEntity(tag='a' * 1024 * 1024))
        self.assertRaises(apiproxy_errors.RequestTooLargeError,
                          self.pool.flush)
        self.assertTrue(self.pool.puts._largest)

        self.pool = context._MutationPool(max_entity_count=3)
        self.pool.ndb_put(NdbTestEntity(tag='a' * 1024 * 1024))
        self.assertRaises(apiproxy_errors.RequestTooLargeError,
                          self.pool.flush)
        self.assertTrue(self.pool.ndb_puts._largest)
    def testPoolWithForceWrites(self):
        class MapreduceSpec:
            def __init__(self):
                self.params = {'force_ops_writes': True}

        pool = context._MutationPool(mapreduce_spec=MapreduceSpec())
        self.assertTrue(pool.force_writes)
    def testNdbFlush(self):
        """Combined test for all NDB implicit and explicit flushing."""
        self.pool = context._MutationPool(max_entity_count=3)

        for i in range(8):
            self.pool.put(NdbTestEntity())
            self.assertEqual(len(self.pool.ndb_puts.items), (i % 3) + 1)

        for i in range(5):
            self.pool.delete(ndb.Key(NdbTestEntity, 'x%d' % i))
            self.assertEquals(len(self.pool.ndb_deletes.items), (i % 3) + 1)

        self.pool.flush()
        self.assertEquals(len(self.pool.ndb_puts.items), 0)
        self.assertEquals(len(self.pool.ndb_deletes.items), 0)
        self.assertEquals(len(self.pool.puts.items), 0)
        self.assertEquals(len(self.pool.deletes.items), 0)
  def testNdbFlush(self):
    """Combined test for all NDB implicit and explicit flushing."""
    self.pool = context._MutationPool(max_entity_count=3)

    for i in range(8):
      self.pool.put(NdbTestEntity())
      self.assertEqual(len(self.pool.ndb_puts.items), (i%3) + 1)

    for i in range(5):
      self.pool.delete(ndb.Key(NdbTestEntity, 'x%d' % i))
      self.assertEquals(len(self.pool.ndb_deletes.items), (i%3) + 1)

    self.pool.flush()
    self.assertEquals(len(self.pool.ndb_puts.items), 0)
    self.assertEquals(len(self.pool.ndb_deletes.items), 0)
    self.assertEquals(len(self.pool.puts.items), 0)
    self.assertEquals(len(self.pool.deletes.items), 0)
    def testFlush(self):
        """Combined test for all db implicit and explicit flushing."""
        self.pool = context._MutationPool(max_entity_count=3)

        for i in range(8):
            self.pool.put(TestEntity())
            self.assertEqual(len(self.pool.puts.items), (i % 3) + 1)

        for i in range(5):
            e = TestEntity()
            e.put()
            self.pool.delete(e)
            self.assertEqual(len(self.pool.deletes.items), (i % 3) + 1)

        self.pool.flush()
        self.assertEquals(len(self.pool.puts.items), 0)
        self.assertEquals(len(self.pool.deletes.items), 0)
        self.assertEquals(len(self.pool.ndb_puts.items), 0)
        self.assertEquals(len(self.pool.ndb_deletes.items), 0)
  def testFlush(self):
    """Combined test for all db implicit and explicit flushing."""
    self.pool = context._MutationPool(max_entity_count=3)

    for i in range(8):
      self.pool.put(TestEntity())
      self.assertEqual(len(self.pool.puts.items), (i%3) + 1)

    for i in range(5):
      e = TestEntity()
      e.put()
      self.pool.delete(e)
      self.assertEqual(len(self.pool.deletes.items), (i%3) + 1)

    self.pool.flush()
    self.assertEquals(len(self.pool.puts.items), 0)
    self.assertEquals(len(self.pool.deletes.items), 0)
    self.assertEquals(len(self.pool.ndb_puts.items), 0)
    self.assertEquals(len(self.pool.ndb_deletes.items), 0)
 def setUp(self):
     super(MutationPoolTest, self).setUp()
     self.pool = context._MutationPool()
 def testPoolWithForceWrites(self):
   class MapreduceSpec:
     def __init__(self):
       self.params = {'force_ops_writes':True}
   pool = context._MutationPool(mapreduce_spec=MapreduceSpec())
   self.assertTrue(pool.force_writes)
 def setUp(self):
   super(MutationPoolTest, self).setUp()
   self.pool = context._MutationPool()