def test_checkAndConfigEval(): def my_side_effect(*args, **kwargs): if args[0] == 34342: return(synapseclient.Evaluation(name="temp",contentSource="syn123")) syn = mock.create_autospec(synapseclient.Synapse) syn.getEvaluation.side_effect=my_side_effect challenge_config = {34342:{'submissionLimit':'None', 'firstRoundStart':'None', 'roundDurationMillis':'None', 'numberOfRounds':'None'}} newEvaluation = challenge._configEval(syn, challenge_config, 34342) expectedEval = synapseclient.Evaluation(name="temp",contentSource="syn123",quota={}) challenge_config = {34342:{'submissionLimit':2, 'firstRoundStart':"2017-11-02T07:00:00.000Z", 'roundDurationMillis':1645199000, 'numberOfRounds':2}} newEvaluation = challenge._configEval(syn, challenge_config, 34342) expectedEval = synapseclient.Evaluation(name="temp",contentSource="syn123",quota={'submissionLimit':2, 'firstRoundStart':"2017-11-02T07:00:00.000Z", 'roundDurationMillis':1645199000, 'numberOfRounds':2}) assert newEvaluation == expectedEval assert_raises(ValueError, challenge._configEval, syn, challenge_config, 33)
def create_evaluation_queue(syn, name, description, parentid): queue = syn.store(synapseclient.Evaluation( name=name, description=description, contentSource=parentid)) logger.info("Created Queue %s(%s)" % (queue.name, queue.id)) return(queue)
def createEvaluationQueue(syn, name, description, status, parentId, submissionInstructionsMessage): queue = syn.store(synapseclient.Evaluation( name=name, description=description, status=status, contentSource=parentId, submissionInstructionsMessage=submissionInstructionsMessage, submissionReceiptMessage="Thanks for submitting to %s!" % name)) return(queue)
def test_run_set_evaluation_quota(): """Tests that a quota is set""" sub = random.randint(0, 4000000) evalid = str(uuid.uuid1()) name = str(uuid.uuid1()) test_eval = synapseclient.Evaluation(name=name, contentSource="syn1234") final_eval = synapseclient.Evaluation(name=name, contentSource="syn1234", quota={"submissionLimit": sub, "numberOfRounds": None, "roundDurationMillis": None, "firstRoundStart": None}) with patch.object(SYN, "getEvaluation", return_value=test_eval) as patch_geteval,\ patch.object(SYN, "store", return_value=final_eval) as patch_store: queue = evaluation_queue.set_evaluation_quota(SYN, evalid, submission_limit=sub) assert queue == final_eval patch_store.assert_called_once_with(final_eval) patch_geteval.assert_called_once_with(evalid)
def test_get_or_create_queue__call(): """Tests creation of queue""" queue_name = str(uuid.uuid1()) parentid = "syn" + str(uuid.uuid1()) description = str(uuid.uuid1()) queue = synapseclient.Evaluation(name=queue_name, contentSource=parentid, description=description, quota={}) returned = synapseclient.Evaluation(name=queue_name, contentSource=parentid, id=str(uuid.uuid1()), description=description, quota={}) with patch.object(CREATE_CLS, "_find_by_obj_or_create", return_value=returned) as patch_find_or_create: new_queue = CREATE_CLS.get_or_create_queue(name=queue_name, contentSource=parentid, description=description, quota={}) assert new_queue == returned patch_find_or_create.assert_called_once_with(queue)
def test_create_evaluation_queue(): """Tests creating evaluation queue""" name = str(uuid.uuid1()) description = str(uuid.uuid1()) parentid = "syn12356" evalid = str(uuid.uuid1()) queue = synapseclient.Evaluation(name=name, description=description, contentSource=parentid, id=evalid) with patch.object(SYN, "store", return_value=queue) as patch_store: myqueue = createchallenge.create_evaluation_queue( SYN, name, description, parentid) assert myqueue == queue patch_store.assert_called_once()
def create_evaluation_queue(syn, name, description, parentid): ''' Convenience function to create Evaluation Queues Args: syn: Synpase object name: Name of evaluation queue description: Description of queue parentid: Synapse project id Returns: Evalation Queue ''' queue = syn.store( synapseclient.Evaluation(name=name, description=description, contentSource=parentid)) logger.info('Created Queue %s(%s)' % (queue.name, queue.id)) return (queue)
def create_evaluation_queue(syn, name, description, parentid): """ Creates Evaluation Queues Args: syn: Synpase object name: Name of evaluation queue description: Description of queue parentid: Synapse project id Returns: Evalation Queue """ queue_ent = synapseclient.Evaluation(name=name, description=description, contentSource=parentid) queue = syn.store(queue_ent) logger.info('Created Queue {}({})'.format(queue.name, queue.id)) return queue
"entity,principalid,permission_level,mapped", [ # tuple with (input, expectedOutput) (synapseclient.Project(), None, "view", permissions.ENTITY_PERMS_MAPPINGS['view']), (synapseclient.Folder(parentId="syn123"), None, "download", permissions.ENTITY_PERMS_MAPPINGS['download']), (synapseclient.Entity(), None, "edit", permissions.ENTITY_PERMS_MAPPINGS['edit']), (synapseclient.Schema(parentId="syn123"), None, "edit_and_delete", permissions.ENTITY_PERMS_MAPPINGS['edit_and_delete']), (synapseclient.File(parentId="syn123"), None, "admin", permissions.ENTITY_PERMS_MAPPINGS['admin']), (synapseclient.Entity(), None, "remove", permissions.ENTITY_PERMS_MAPPINGS['remove']), (synapseclient.Evaluation(contentSource="syn123"), None, "view", permissions.EVALUATION_PERMS_MAPPINGS['view']), (synapseclient.Evaluation(contentSource="syn123"), None, "submit", permissions.EVALUATION_PERMS_MAPPINGS['submit']), (synapseclient.Evaluation(contentSource="syn123"), None, "score", permissions.EVALUATION_PERMS_MAPPINGS['score']), (synapseclient.Evaluation(contentSource="syn123"), None, "admin", permissions.EVALUATION_PERMS_MAPPINGS['admin']), (synapseclient.Evaluation(contentSource="syn123"), None, "remove", permissions.EVALUATION_PERMS_MAPPINGS['remove']) ]) def test__set_permissions(entity, principalid, permission_level, mapped): """Test mapping of ACL""" #(entity, principalid, permission_level, mapped) = test_data with patch.object(SYN, "setPermissions", return_value=SET_PERMS) as patch_set_permission:
MESSAGE = "passed" CHALLENGE_SYNID = "syn1234" SUBMISSION = synapseclient.Submission(name="foo", entityId="syn123", evaluationId=2, versionNumber=1, id="syn222", filePath="foo", userId="222") SUBMISSION_STATUS = synapseclient.SubmissionStatus(status="RECEIVED", id="111", etag="222") EVALUATION = synapseclient.Evaluation(name="foo", id="222", contentSource=CHALLENGE_SYNID) SYN_USERPROFILE = synapseclient.UserProfile(ownerId="111", userName="******") BUNDLE = [(SUBMISSION, SUBMISSION_STATUS)] SUB_INFO = { 'valid': True, 'annotations': ANNOTATIONS, 'error': None, 'message': MESSAGE } @pytest.fixture def scorer(): """Invoke validator, must patch get evaluation""" with patch.object(SYN, "getEvaluation", return_value=EVALUATION),\
def my_side_effect(*args, **kwargs): if args[0] == 34342: return (synapseclient.Evaluation(name="temp", contentSource="syn123"))
def test__get_obj__entity(obj): """Test getting of entities""" with patch.object(GET_CLS, "_find_entity_by_name", return_value=obj) as patch_get: return_obj = GET_CLS._get_obj(obj) patch_get.assert_called_once_with( parentid=obj.properties.get("parentId", None), entity_name=obj.name, concrete_type=obj.properties.concreteType) assert obj == return_obj @pytest.mark.parametrize("obj,get_func", [(synapseclient.Team(name="foo"), "getTeam"), (synapseclient.Wiki(owner="foo"), "getWiki"), (synapseclient.Evaluation(name="foo", contentSource="syn123"), "getEvaluationByName")]) def test__get_obj__nonentity(obj, get_func): """Test getting of entities""" with patch.object(SYN, get_func, return_value=obj) as patch_get: return_obj = GET_CLS._get_obj(obj) if isinstance(obj, (synapseclient.Team, synapseclient.Evaluation)): patch_get.assert_called_once_with(obj.name) elif isinstance(obj, synapseclient.Wiki): patch_get.assert_called_once_with(obj.ownerId) assert return_obj == obj def test_get_or_create_project__call(): """Makes sure correct parameters are called""" project_name = str(uuid.uuid1())