def with_cleanup(aws_creds, request): # tear-down: clean up all specially-marked HITs: def test_hits_only(hit): return TEST_HIT_DESCRIPTION in hit["description"] return hit["description"] == TEST_HIT_DESCRIPTION + system_marker() params = {"region_name": "us-east-1"} params.update(aws_creds) service = MTurkService(**params) # In tests we do a lot of querying of Qualifications we only just created, # so we need a long time-out service.max_wait_secs = 60.0 try: yield service except Exception as e: raise e finally: try: for hit in service.get_hits(test_hits_only): service.disable_hit(hit["id"]) except Exception: # Broad exception so we don't leak credentials in Travis CI logs pass
def __init__(self, config, hit_domain, ad_url): self.config = config self.ad_url = ad_url self.hit_domain = hit_domain self.mturkservice = MTurkService( self.config.get('aws_access_key_id'), self.config.get('aws_secret_access_key'), (self.config.get('mode') == "sandbox"))
def test_check_credentials_no_creds_set_raises(self, with_mock): creds = { 'aws_access_key_id': '', 'aws_secret_access_key': '', 'region_name': 'us-east-1' } service = MTurkService(**creds) with pytest.raises(MTurkServiceException): service.check_credentials()
def test_check_credentials_no_creds_set_raises(self, with_mock): creds = { "aws_access_key_id": "", "aws_secret_access_key": "", "region_name": "us-east-1", } service = MTurkService(**creds) with pytest.raises(MTurkServiceException): service.check_credentials()
def _mturk_service_from_config(sandbox): config = get_config() config.load() return MTurkService( aws_access_key_id=config.get("aws_access_key_id"), aws_secret_access_key=config.get("aws_secret_access_key"), region_name=config.get("aws_region"), sandbox=sandbox, )
def __init__(self): super(MTurkRecruiter, self).__init__() self.config = get_config() self.ad_url = '{}/ad'.format(get_base_url()) self.hit_domain = os.getenv('HOST') self.mturkservice = MTurkService( self.config.get('aws_access_key_id'), self.config.get('aws_secret_access_key'), self.config.get('mode') != u"live" ) self._validate_conifg()
def check_db_for_missing_notifications(): """Check the database for missing notifications.""" config = dallinger.config.get_config() mturk = MTurkService( aws_access_key_id=config.get('aws_access_key_id'), aws_secret_access_key=config.get('aws_secret_access_key'), region_name=config.get('aws_region'), sandbox=config.get('mode') in ('debug', 'sandbox')) # get all participants with status < 100 participants = Participant.query.filter_by(status="working").all() reference_time = datetime.now() run_check(config, mturk, participants, session, reference_time)
def qtype(aws_creds): # build name = name_with_hostname_prefix() service = MTurkService(**aws_creds) qtype = service.create_qualification_type( name=name, description=TEST_QUALIFICATION_DESCRIPTION, status='Active', ) yield qtype # clean up service.dispose_qualification_type(qtype['id'])
def __init__(self): super(MTurkRecruiter, self).__init__() self.config = get_config() self.ad_url = "{}/ad?recruiter={}".format(get_base_url(), self.nickname) self.hit_domain = os.getenv("HOST") self.mturkservice = MTurkService( self.config.get("aws_access_key_id"), self.config.get("aws_secret_access_key"), self.config.get("aws_region"), self.config.get("mode") != "live", ) self.messenger = get_messenger(self.config) self._validate_config()
def __init__(self): super(MTurkRecruiter, self).__init__() self.config = get_config() base_url = get_base_url() self.ad_url = "{}/ad?recruiter={}".format(base_url, self.nickname) self.notification_url = "{}/mturk-sns-listener".format(base_url) self.hit_domain = os.getenv("HOST") self.mturkservice = MTurkService( aws_access_key_id=self.config.get("aws_access_key_id"), aws_secret_access_key=self.config.get("aws_secret_access_key"), region_name=self.config.get("aws_region"), sandbox=self.config.get("mode") != "live", ) self.messenger = get_messenger(self.config) self._validate_config()
def with_cleanup(aws_creds, request): # tear-down: clean up all specially-marked HITs: def test_hits_only(hit): return hit['description'] == TEST_HIT_DESCRIPTION + str(os.getpid()) service = MTurkService(**aws_creds) # In tests we do a lot of querying of Qualifications we only just created, # so we need a long time-out service.max_wait_secs = 60.0 try: yield service except Exception as e: raise e finally: try: for hit in service.get_hits(test_hits_only): service.disable_hit(hit['id']) except Exception: # Broad exception so we don't leak credentials in Travis CI logs pass
def qualify(workers, qualification, value, by_name, notify, sandbox): """Assign a qualification to 1 or more workers""" if not (workers and qualification and value): raise click.BadParameter( 'Must specify a qualification ID, value/score, and at least one worker ID' ) config = get_config() config.load() mturk = MTurkService( aws_access_key_id=config.get('aws_access_key_id'), aws_secret_access_key=config.get('aws_secret_access_key'), sandbox=sandbox, ) if by_name: result = mturk.get_qualification_type_by_name(qualification) if result is None: raise click.BadParameter( 'No qualification with name "{}" exists.'.format( qualification)) qid = result['id'] else: qid = qualification click.echo( "Assigning qualification {} with value {} to {} worker{}...".format( qid, value, len(workers), 's' if len(workers) > 1 else '')) for worker in workers: if mturk.set_qualification_score(qid, worker, value, notify=notify): click.echo('{} OK'.format(worker)) # print out the current set of workers with the qualification results = list(mturk.get_workers_with_qualification(qid)) click.echo("{} workers with qualification {}:".format(len(results), qid)) for score, count in Counter([r['score'] for r in results]).items(): click.echo("{} with value {}".format(count, score))
def with_cleanup(aws_creds, request): # tear-down: clean up all specially-marked HITs: def test_hits_only(hit): return hit['description'] == TEST_HIT_DESCRIPTION + str(os.getpid()) service = MTurkService(**aws_creds) request.instance._qtypes_to_purge = [] try: yield service except Exception as e: raise e finally: try: for hit in service.get_hits(test_hits_only): service.disable_hit(hit['id']) # remove QualificationTypes we may have added: for qtype_id in request.instance._qtypes_to_purge: service.dispose_qualification_type(qtype_id) except Exception: # Broad exception so we don't leak credentials in Travis CI logs pass
def qualify(qualification, value, worker): """Assign a qualification to a worker.""" config = get_config() config.load() mturk = MTurkService( aws_access_key_id=config.get('aws_access_key_id'), aws_secret_access_key=config.get('aws_secret_access_key'), sandbox=(config.get('mode') == "sandbox"), ) click.echo("Assigning qualification {} with value {} to worker {}".format( qualification, value, worker)) if mturk.set_qualification_score(qualification, worker, value): click.echo('OK') # print out the current set of workers with the qualification results = list(mturk.get_workers_with_qualification(qualification)) click.echo("{} workers with qualification {}:".format( len(results), qualification)) for score, count in Counter([r['score'] for r in results]).items(): click.echo("{} with value {}".format(count, score))
def mturk(aws_creds): params = {'region_name': 'us-east-1'} params.update(aws_creds) service = MTurkService(**params) return service
def mturk(aws_creds): service = MTurkService(**aws_creds) return service
def mturk(aws_creds): params = {"region_name": "us-east-1"} params.update(aws_creds) service = MTurkService(**params) return service
def with_mock(): creds = {'aws_access_key_id': '', 'aws_secret_access_key': ''} service = MTurkService(**creds) service.mturk = mock.Mock(spec=MTurkConnection) return service