def test_batch_operation(self):

        expected_val = {}
        for counter_name in self.counter_name_list:
            expected_val[counter_name] = 1
            MC.increment(counter_name)

        # Fetching multiple counters at the same time and checking values
        values = MC.get_multi(self.counter_name_list)
        self.assertDictEqual(expected_val, values)

        # Flushing all but first counter
        for counter_name in self.counter_name_list[1:]:
            MC.put_to_datastore(counter_name, flush=True)
        values = MC.get_multi(self.counter_name_list)
        self.assertDictEqual(expected_val, values)

        # Check if all counters exist
        for counter_name in self.counter_name_list:
            self.assertTrue(MC.exist(counter_name))

        # Delete all counters and check if they still exist
        MC.delete_multi(self.counter_name_list)
        for counter_name in self.counter_name_list:
            self.assertFalse(MC.exist(counter_name))
  def test_batch_operation(self):

    expected_val = {}
    for counter_name in self.counter_name_list:
      expected_val[counter_name] = 1
      MC.increment(counter_name)

    # Fetching multiple counters at the same time and checking values
    values = MC.get_multi(self.counter_name_list)
    self.assertDictEqual(expected_val, values)

    # Flushing all but first counter
    for counter_name in self.counter_name_list[1:]:
      MC.put_to_datastore(counter_name, flush=True)
    values = MC.get_multi(self.counter_name_list)
    self.assertDictEqual(expected_val, values)

    # Check if all counters exist
    for counter_name in self.counter_name_list:
      self.assertTrue(MC.exist(counter_name))

    # Delete all counters and check if they still exist
    MC.delete_multi(self.counter_name_list)
    for counter_name in self.counter_name_list:
      self.assertFalse(MC.exist(counter_name))
 def threadproc(self, idx, results):
     '''This function is executed by each thread.'''
     no_of_req = 0
     while not self.quitevent.is_set():
         MC.increment(self.counter_name, persist_delay=0)
         MC.put_to_datastore(self.counter_name)
         no_of_req += 1
     results[idx] = no_of_req
 def threadproc(self, idx, results):
   '''This function is executed by each thread.'''
   no_of_req = 0
   while not self.quitevent.is_set():
     MC.increment(self.counter_name, persist_delay=0)
     MC.put_to_datastore(self.counter_name)
     no_of_req += 1
   results[idx] = no_of_req
    def test_set_reset(self):

        # Setting the counter to a particular value
        expected_val = 1024
        MC.set(self.counter_name, expected_val)
        self.assertEqual(expected_val, MC.get(self.counter_name))

        # Reseting the counter to a particular value
        MC.reset(self.counter_name)
        self.assertEqual(0, MC.get(self.counter_name))

        # Deleting the counter from memcache and checking it's existence
        MC.put_to_datastore(self.counter_name, flush=True)
        self.assertTrue(MC.exist(self.counter_name))

        # Now permanently deleting the counter and checking it's existence
        MC.delete(self.counter_name)
        self.assertFalse(MC.exist(self.counter_name))
  def test_set_reset(self):

    # Setting the counter to a particular value
    expected_val = 1024
    MC.set(self.counter_name, expected_val)
    self.assertEqual(expected_val, MC.get(self.counter_name))

    # Reseting the counter to a particular value
    MC.reset(self.counter_name)
    self.assertEqual(0, MC.get(self.counter_name))

    # Deleting the counter from memcache and checking it's existence
    MC.put_to_datastore(self.counter_name, flush=True)
    self.assertTrue(MC.exist(self.counter_name))

    # Now permanently deleting the counter and checking it's existence
    MC.delete(self.counter_name)
    self.assertFalse(MC.exist(self.counter_name))
    def test_memcache_flush(self):

        # Attempt to raise error by flushing memcache without persisting
        expected_val = MC.get(self.counter_name) + (INCREMENT_STEPS * 2)
        for _ in range(INCREMENT_STEPS):
            MC.increment(self.counter_name, 2, persist_delay=1000)
        self.assertEqual(expected_val, MC.get(self.counter_name))

        memcache.flush_all()
        self.assertNotEqual(expected_val, MC.get(self.counter_name))

        # Same Operation with Force persistence
        expected_val = MC.get(self.counter_name) + (INCREMENT_STEPS * 2)
        for _ in range(INCREMENT_STEPS):
            MC.increment(self.counter_name, 2, persist_delay=1000)
        self.assertEqual(expected_val, MC.get(self.counter_name))
        MC.put_to_datastore(self.counter_name)

        memcache.flush_all()
        self.assertEqual(expected_val, MC.get(self.counter_name))
  def test_memcache_flush(self):

    # Attempt to raise error by flushing memcache without persisting
    expected_val = MC.get(self.counter_name) + (INCREMENT_STEPS * 2)
    for _ in range(INCREMENT_STEPS):
      MC.increment(self.counter_name, 2, persist_delay=1000)
    self.assertEqual(expected_val, MC.get(self.counter_name))

    memcache.flush_all()
    self.assertNotEqual(expected_val, MC.get(self.counter_name))

    # Same Operation with Force persistence
    expected_val = MC.get(self.counter_name) + (INCREMENT_STEPS * 2)
    for _ in range(INCREMENT_STEPS):
      MC.increment(self.counter_name, 2, persist_delay=1000)
    self.assertEqual(expected_val, MC.get(self.counter_name))
    MC.put_to_datastore(self.counter_name)

    memcache.flush_all()
    self.assertEqual(expected_val, MC.get(self.counter_name))