| Index: third_party/gsutil/boto/tests/mturk/cleanup_tests.py
|
| diff --git a/third_party/gsutil/boto/tests/mturk/cleanup_tests.py b/third_party/gsutil/boto/tests/mturk/cleanup_tests.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..bda5167514eebbd554168ea700bd7da9e00a192f
|
| --- /dev/null
|
| +++ b/third_party/gsutil/boto/tests/mturk/cleanup_tests.py
|
| @@ -0,0 +1,47 @@
|
| +import itertools
|
| +
|
| +from _init_environment import SetHostMTurkConnection
|
| +from _init_environment import config_environment
|
| +
|
| +def description_filter(substring):
|
| + return lambda hit: substring in hit.Title
|
| +
|
| +def disable_hit(hit):
|
| + return conn.disable_hit(hit.HITId)
|
| +
|
| +def dispose_hit(hit):
|
| + # assignments must be first approved or rejected
|
| + for assignment in conn.get_assignments(hit.HITId):
|
| + if assignment.AssignmentStatus == 'Submitted':
|
| + conn.approve_assignment(assignment.AssignmentId)
|
| + return conn.dispose_hit(hit.HITId)
|
| +
|
| +def cleanup():
|
| + """Remove any boto test related HIT's"""
|
| + config_environment()
|
| +
|
| + global conn
|
| +
|
| + conn = SetHostMTurkConnection()
|
| +
|
| +
|
| + is_boto = description_filter('Boto')
|
| + print 'getting hits...'
|
| + all_hits = list(conn.get_all_hits())
|
| + is_reviewable = lambda hit: hit.HITStatus == 'Reviewable'
|
| + is_not_reviewable = lambda hit: not is_reviewable(hit)
|
| + hits_to_process = filter(is_boto, all_hits)
|
| + hits_to_disable = filter(is_not_reviewable, hits_to_process)
|
| + hits_to_dispose = filter(is_reviewable, hits_to_process)
|
| + print 'disabling/disposing %d/%d hits' % (len(hits_to_disable), len(hits_to_dispose))
|
| + map(disable_hit, hits_to_disable)
|
| + map(dispose_hit, hits_to_dispose)
|
| +
|
| + total_hits = len(all_hits)
|
| + hits_processed = len(hits_to_process)
|
| + skipped = total_hits - hits_processed
|
| + fmt = 'Processed: %(total_hits)d HITs, disabled/disposed: %(hits_processed)d, skipped: %(skipped)d'
|
| + print fmt % vars()
|
| +
|
| +if __name__ == '__main__':
|
| + cleanup()
|
|
|