def test_validate_docker_submission_valid(): """Tests that True is returned when validate docker submission is valid""" config = Mock() docker_repo = 'docker.synapse.org/syn1234/docker_repo' docker_digest = 'sha123566' username = str(uuid.uuid1()) password = str(uuid.uuid1()) docker_sub = synapseclient.Submission(evaluationId=1, entityId=1, versionNumber=2, dockerRepositoryName=docker_repo, dockerDigest=docker_digest) with patch.object(SYN, "getConfigFile", return_value=config),\ patch.object(config, "items", return_value={'username': username, 'password': password}),\ patch.object(SYN, "getSubmission", return_value=docker_sub) as patch_get_sub,\ patch.object(dockertools, "validate_docker", return_value=True) as patch_validate: valid = submission.validate_docker_submission(SYN, "123455") patch_validate.assert_called_once_with( docker_repo="syn1234/docker_repo", docker_digest=docker_digest, index_endpoint=dockertools.ENDPOINT_MAPPING['synapse'], username=username, password=password) patch_get_sub.assert_called_once_with("123455") assert valid
def test__get_contributors(): ''' Test getting contributors by evaluationID, status, and date range ''' sub = synapseclient.Submission(evaluationId=123, entityId="syn1234", versionNumber=1, contributors=[{ "principalId": 321 }], createdOn="2019-05-26T23:59:59.062Z") bundle = [(sub, "temp")] with patch.object(syn, "getSubmissionBundles", return_value=bundle) as patch_syn_get_bundles: contributors = challengeutils.utils._get_contributors( syn, 123, "SCORED", "2019-05-06 1:00", "2019-06-01 1:00") patch_syn_get_bundles.assert_called_once_with(123, status="SCORED") assert contributors == set([321])
def test_download_current_lead_sub(): """Tests download of lead submission""" sub = synapseclient.Submission(evaluationId='2', entityId='2', versionNumber='3') with patch.object(SYN, "getSubmission", return_value=sub) as patch_getsub,\ patch.object(submission, "get_submitterid_from_submission_id", return_value="2") as patch_getsubmitter,\ patch.object(submission, "get_submitters_lead_submission", return_value="path") as patch_get_lead: dl_file = submission.download_current_lead_sub(SYN, SUBMISSIONID, "VALIDATED", "key", verbose=False) patch_getsubmitter.assert_called_once() patch_get_lead.assert_called_once() assert dl_file == "path"
def test_get_submitters_lead_submission(): """Tests getting of lead submission""" sub = synapseclient.Submission(evaluationId='2', entityId='2', versionNumber='3') temp = tempfile.NamedTemporaryFile() sub.filePath = temp.name with patch.object(utils, "evaluation_queue_query", return_value=[{'objectId': 1}]) as patch_query,\ patch.object(SYN, "getSubmission", return_value=sub) as patch_getsub: dl_file = submission.get_submitters_lead_submission(SYN, SUBMISSIONID, QUEUEID, "key", verbose=False) patch_query.assert_called_once() patch_getsub.assert_called_once_with(1, downloadLocation='.') assert dl_file == "previous_submission.csv" os.unlink("previous_submission.csv")
def test_validate_docker_submission_notdocker(): """Tests ValueError is thrown when submission is not docker submission""" config = Mock() docker_repo = 'docker.synapse.org/syn1234/docker_repo' docker_digest = None username = str(uuid.uuid1()) password = str(uuid.uuid1()) docker_sub = synapseclient.Submission(evaluationId=1, entityId=1, versionNumber=2, dockerRepositoryName=docker_repo, dockerDigest=docker_digest) with patch.object(SYN, "getConfigFile", return_value=config),\ patch.object(config, "items", return_value={'username': username, 'password': password}),\ patch.object(SYN, "getSubmission", return_value=docker_sub),\ pytest.raises(ValueError, match='Submission is not a Docker submission'): submission.validate_docker_submission(SYN, "123455")
import pytest import synapseclient from scoring_harness import messages from scoring_harness.queue_scorer import EvaluationQueueScorer SYN = mock.create_autospec(synapseclient.Synapse) ANNOTATIONS = {'foo': 'bar'} 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,