File: cleanup_tests.py

package info (click to toggle)
python-boto 2.49.0-4.1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 9,888 kB
  • sloc: python: 86,396; makefile: 112
file content (47 lines) | stat: -rw-r--r-- 1,463 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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()