Ejemplo n.º 1
0
  def test_dynamic_delete(self):
    async_true = gen.Future()
    async_true.set_result(True)
    entity_lock = flexmock(EntityLock)
    entity_lock.should_receive('acquire').and_return(async_true)
    entity_lock.should_receive('release')

    del_request = flexmock()
    del_request.should_receive("key_list")
    del_request.should_receive("has_transaction").never()
    del_request.should_receive("transaction").never()
    db_batch = flexmock()
    db_batch.should_receive('valid_data_version_sync').and_return(True)
    transaction_manager = flexmock(
      create_transaction_id=lambda project, xg: 1,
      delete_transaction_id=lambda project, txid: None,
      set_groups=lambda project_id, txid, groups: None)
    dd = DatastoreDistributed(db_batch, transaction_manager,
                              self.get_zookeeper())
    dd.index_manager = flexmock(
      projects={'guestbook': flexmock(indexes_pb=[])})
    yield dd.dynamic_delete("appid", del_request)

    fake_key = entity_pb.Reference()
    fake_key.set_app('foo')
    path = fake_key.mutable_path()
    element = path.add_element()
    element.set_type('bar')
    element.set_id(1)

    del_request = flexmock()
    del_request.should_receive("key_list").and_return([fake_key])
    del_request.should_receive("has_transaction").and_return(True)
    transaction = flexmock()
    transaction.should_receive("handle").and_return(1)
    del_request.should_receive("transaction").and_return(transaction)
    del_request.should_receive("has_mark_changes").and_return(False)
    dd = DatastoreDistributed(db_batch, transaction_manager,
                              self.get_zookeeper())
    dd.index_manager = flexmock(
      projects={'appid': flexmock(indexes_pb=[])})
    flexmock(utils).should_receive("get_entity_kind").and_return("kind")
    db_batch.should_receive('delete_entities_tx').and_return(ASYNC_NONE)
    yield dd.dynamic_delete("appid", del_request)

    del_request = flexmock()
    del_request.should_receive("key_list").and_return([fake_key])
    del_request.should_receive("has_transaction").and_return(False)
    del_request.should_receive("has_mark_changes").and_return(False)
    dd = DatastoreDistributed(db_batch, transaction_manager,
                              self.get_zookeeper())
    dd.index_manager = flexmock(
      projects={'appid': flexmock(indexes_pb=[])})
    flexmock(dd).should_receive("delete_entities").and_return(ASYNC_NONE).once()
    yield dd.dynamic_delete("appid", del_request)
Ejemplo n.º 2
0
  def test_dynamic_delete(self):
    entity_lock = flexmock(EntityLock)
    entity_lock.should_receive('acquire')
    entity_lock.should_receive('release')

    del_request = flexmock()
    del_request.should_receive("key_list")
    del_request.should_receive("has_transaction").never()
    del_request.should_receive("transaction").never()
    db_batch = flexmock()
    db_batch.should_receive('valid_data_version').and_return(True)
    transaction_manager = flexmock(
      create_transaction_id=lambda project, xg: 1,
      delete_transaction_id=lambda project, txid: None)
    dd = DatastoreDistributed(db_batch, transaction_manager,
                              self.get_zookeeper())
    dd.dynamic_delete("appid", del_request)

    fake_key = entity_pb.Reference()
    fake_key.set_app('foo')
    path = fake_key.mutable_path()
    element = path.add_element()
    element.set_type('bar')
    element.set_id(1)


    del_request = flexmock()
    del_request.should_receive("key_list").and_return([fake_key])
    del_request.should_receive("has_transaction").and_return(True)
    transaction = flexmock()
    transaction.should_receive("handle").and_return(1)
    del_request.should_receive("transaction").and_return(transaction)
    del_request.should_receive("has_mark_changes").and_return(False)
    dd = DatastoreDistributed(db_batch, transaction_manager,
                              self.get_zookeeper())
    flexmock(utils).should_receive("get_entity_kind").and_return("kind")
    db_batch.should_receive('delete_entities_tx')
    dd.dynamic_delete("appid", del_request)

    del_request = flexmock()
    del_request.should_receive("key_list").and_return([fake_key])
    del_request.should_receive("has_transaction").and_return(False)
    del_request.should_receive("has_mark_changes").and_return(False)
    dd = DatastoreDistributed(db_batch, transaction_manager,
                              self.get_zookeeper())
    flexmock(dd).should_receive("delete_entities").once()
    dd.dynamic_delete("appid", del_request)
Ejemplo n.º 3
0
  def test_dynamic_delete(self):
    entity_lock = flexmock(EntityLock)
    entity_lock.should_receive('acquire')
    entity_lock.should_receive('release')

    del_request = flexmock()
    del_request.should_receive("key_list")
    del_request.should_receive("has_transaction").never()
    del_request.should_receive("transaction").never()
    db_batch = flexmock()
    db_batch.should_receive('valid_data_version').and_return(True)
    dd = DatastoreDistributed(db_batch, self.get_zookeeper())
    dd.dynamic_delete("appid", del_request)

    fake_key = entity_pb.Reference()
    fake_key.set_app('foo')
    path = fake_key.mutable_path()
    element = path.add_element()
    element.set_type('bar')
    element.set_id(1)


    del_request = flexmock()
    del_request.should_receive("key_list").and_return([fake_key])
    del_request.should_receive("has_transaction").and_return(True)
    transaction = flexmock()
    transaction.should_receive("handle").and_return(1)
    del_request.should_receive("transaction").and_return(transaction)
    del_request.should_receive("has_mark_changes").and_return(False)
    dd = DatastoreDistributed(db_batch, self.get_zookeeper())
    flexmock(utils).should_receive("get_entity_kind").and_return("kind")
    db_batch.should_receive('delete_entities_tx')
    dd.dynamic_delete("appid", del_request)

    del_request = flexmock()
    del_request.should_receive("key_list").and_return([fake_key])
    del_request.should_receive("has_transaction").and_return(False)
    del_request.should_receive("has_mark_changes").and_return(False)
    dd = DatastoreDistributed(db_batch, self.get_zookeeper())
    flexmock(dd).should_receive("delete_entities").once()
    dd.dynamic_delete("appid", del_request)
Ejemplo n.º 4
0
  def test_dynamic_delete(self):
    del_request = flexmock()
    del_request.should_receive("key_list")
    del_request.should_receive("has_transaction").never()
    del_request.should_receive("transaction").never()
    db_batch = flexmock()
    db_batch.should_receive('valid_data_version').and_return(True)
    dd = DatastoreDistributed(db_batch, None)
    dd.dynamic_delete("appid", del_request)

    fake_element = flexmock()
    fake_element.should_receive("type").and_return("kind")
    fake_path = flexmock()
    fake_path.should_receive("element_list").and_return([fake_element])
    fake_key = flexmock()
    fake_key.should_receive("path").and_return(fake_path)

    del_request = flexmock()
    del_request.should_receive("key_list").and_return([fake_key])
    del_request.should_receive("has_transaction").and_return(True).twice()
    transaction = flexmock()
    transaction.should_receive("handle").and_return(1)
    del_request.should_receive("transaction").and_return(transaction).once()
    del_request.should_receive("has_mark_changes").and_return(False)
    dd = DatastoreDistributed(db_batch, None)
    flexmock(dd).should_receive("acquire_locks_for_trans").and_return({})
    flexmock(dd).should_receive("release_locks_for_nontrans").never()
    flexmock(utils).should_receive("get_entity_kind").and_return("kind")
    flexmock(dd).should_receive('delete_entities_txn')
    dd.dynamic_delete("appid", del_request)

    del_request = flexmock()
    del_request.should_receive("key_list").and_return([fake_key])
    del_request.should_receive("has_transaction").and_return(False).twice()
    del_request.should_receive("has_mark_changes").and_return(False)
    dd = DatastoreDistributed(db_batch, None)
    flexmock(dd).should_receive("acquire_locks_for_trans").never()
    flexmock(dd).should_receive("acquire_locks_for_nontrans").once().and_return({})
    flexmock(dd).should_receive("delete_entities").once()
    flexmock(dd).should_receive("release_locks_for_nontrans").once()
    dd.dynamic_delete("appid", del_request)