@gen.coroutine
  def RemovePhotos(self, client, user_id, viewpoint_id, photo_ids):
    photo_keys = [DBKey(photo_id, None) for photo_id in photo_ids]
    photos = yield gen.Task(Photo.BatchQuery, client, photo_keys, None)

    # Decrement owned by stats on both the viewpoint and the user.
    self.GetViewpointOwnedBy(viewpoint_id, user_id).DecrementFromPhotos(photos)
    # Don't recompute owned-by stats, just copy them from the viewpoint accounting object.
    self.GetUserOwnedBy(user_id).CopyStatsFrom(self.GetViewpointOwnedBy(viewpoint_id, user_id))
Test the initial response.
dataset/ETHPy150Open viewfinderco/viewfinder/backend/db/accounting.py/AccountingAccumulator.RemovePhotos--crossover with--dataset/ETHPy150Open nlloyd/SubliminalCollaborator/libs/twisted/words/test/test_jabbersaslmechanisms.py/PlainTest.test_getInitialResponse