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)
Example #2
0
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)
Example #3
0
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)
Example #4
0
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)
Example #5
0
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)
Example #6
0
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()
Example #7
0
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)
Example #8
0
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),\
Example #11
0
 def my_side_effect(*args, **kwargs):
     if args[0] == 34342:
         return (synapseclient.Evaluation(name="temp",
                                          contentSource="syn123"))
Example #12
0
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())