def test_update_from_samples_changed_tests(self): baseline_tests = ["1PST8", "2PST8"] config.override_setting(config.BASELINE_SAMPLE_TEST_CODES, baseline_tests) self.dao.update_from_biobank_stored_samples() # safe noop participant = self._insert(Participant(participantId=1, biobankId=11)) self.assertEquals(self.dao.get(participant.participantId).numBaselineSamplesArrived, 0) sample_dao = BiobankStoredSampleDao() def add_sample(test_code, sample_id): TIME = datetime.datetime(2018, 3, 2) sample_dao.insert(BiobankStoredSample( biobankStoredSampleId=sample_id, biobankId=participant.biobankId, biobankOrderIdentifier='KIT', test=test_code, confirmed=TIME)) add_sample(baseline_tests[0], '11111') add_sample(baseline_tests[1], '22223') self.dao.update_from_biobank_stored_samples() summary = self.dao.get(participant.participantId) init_last_modified = summary.lastModified self.assertEquals(summary.numBaselineSamplesArrived, 2) # sleep 1 sec to make lastModified different time.sleep(1) # Simulate removal of one of the baseline tests from config.json. baseline_tests.pop() config.override_setting(config.BASELINE_SAMPLE_TEST_CODES, baseline_tests) self.dao.update_from_biobank_stored_samples() summary = self.dao.get(participant.participantId) self.assertEquals(summary.numBaselineSamplesArrived, 1) self.assertNotEqual(init_last_modified, summary.lastModified)
def test_only_update_dna_sample(self): dna_tests = ["1ED10", "1SAL2"] config.override_setting(config.DNA_SAMPLE_TEST_CODES, dna_tests) self.dao.update_from_biobank_stored_samples() # safe noop p_dna_samples = self._insert(Participant(participantId=1, biobankId=11)) self.assertEquals(self.dao.get(p_dna_samples.participantId).samplesToIsolateDNA, None) self.assertEquals( self.dao.get(p_dna_samples.participantId).enrollmentStatusCoreStoredSampleTime, None) self.assertEquals( self.dao.get(p_dna_samples.participantId).enrollmentStatusCoreOrderedSampleTime, None) sample_dao = BiobankStoredSampleDao() def add_sample(participant, test_code, sample_id, confirmed_time): sample_dao.insert(BiobankStoredSample( biobankStoredSampleId=sample_id, biobankId=participant.biobankId, biobankOrderIdentifier='KIT', test=test_code, confirmed=confirmed_time)) confirmed_time_0 = datetime.datetime(2018, 3, 1) add_sample(p_dna_samples, dna_tests[0], '11111', confirmed_time_0) self.dao.update_from_biobank_stored_samples() self.assertEquals(self.dao.get(p_dna_samples.participantId).samplesToIsolateDNA, SampleStatus.RECEIVED) # only update dna sample will not update enrollmentStatusCoreStoredSampleTime self.assertEquals( self.dao.get(p_dna_samples.participantId).enrollmentStatusCoreStoredSampleTime, None) self.assertEquals( self.dao.get(p_dna_samples.participantId).enrollmentStatusCoreOrderedSampleTime, None)
def setUp(self): super(MarkGhostParticipantsTest, self).setUp(use_mysql=True) NdbTestBase.doSetUp(self) TestBase.setup_fake(self) config.override_setting(config.GHOST_ID_BUCKET, [_FAKE_BUCKET]) self.participant_dao = ParticipantDao() self.p_history = ParticipantHistoryDao()
def test_update_from_samples(self): # baseline_tests = ['BASELINE1', 'BASELINE2'] baseline_tests = ["1PST8", "2PST8"] config.override_setting(config.BASELINE_SAMPLE_TEST_CODES, baseline_tests) self.dao.update_from_biobank_stored_samples() # safe noop p_baseline_samples = self._insert(Participant(participantId=1, biobankId=11)) p_mixed_samples = self._insert(Participant(participantId=2, biobankId=22)) p_no_samples = self._insert(Participant(participantId=3, biobankId=33)) p_unconfirmed = self._insert(Participant(participantId=4, biobankId=44)) self.assertEquals(self.dao.get(p_baseline_samples.participantId).numBaselineSamplesArrived, 0) def get_p_baseline_last_modified(): return self.dao.get(p_baseline_samples.participantId).lastModified p_baseline_last_modified1 = get_p_baseline_last_modified() sample_dao = BiobankStoredSampleDao() def add_sample(participant, test_code, sample_id): TIME = datetime.datetime(2018, 3, 2) sample_dao.insert(BiobankStoredSample( biobankStoredSampleId=sample_id, biobankId=participant.biobankId, biobankOrderIdentifier='KIT', test=test_code, confirmed=TIME)) add_sample(p_baseline_samples, baseline_tests[0], '11111') add_sample(p_baseline_samples, baseline_tests[1], '22223') add_sample(p_mixed_samples, baseline_tests[0], '11112') add_sample(p_mixed_samples, 'NOT1', '44441') # add unconfirmed sample sample_dao.insert(BiobankStoredSample(biobankStoredSampleId=55555, biobankId=p_unconfirmed.biobankId, biobankOrderIdentifier='KIT', test=baseline_tests[1], confirmed=None)) # sleep 1 sec to make lastModified different time.sleep(1) self.dao.update_from_biobank_stored_samples() p_baseline_last_modified2 = get_p_baseline_last_modified() self.assertNotEquals(p_baseline_last_modified2, p_baseline_last_modified1) self.assertEquals(self.dao.get(p_baseline_samples.participantId).numBaselineSamplesArrived, 2) self.assertEquals(self.dao.get(p_mixed_samples.participantId).numBaselineSamplesArrived, 1) self.assertEquals(self.dao.get(p_no_samples.participantId).numBaselineSamplesArrived, 0) self.assertEquals(self.dao.get(p_unconfirmed.participantId).numBaselineSamplesArrived, 0) M_baseline_samples = self._insert(Participant(participantId=9, biobankId=99)) add_sample(M_baseline_samples, baseline_tests[0], '999') M_first_update = self.dao.get(M_baseline_samples.participantId) # sleep 1 sec to make lastModified different time.sleep(1) self.dao.update_from_biobank_stored_samples() add_sample(M_baseline_samples, baseline_tests[1], '9999') M_second_update = self.dao.get(M_baseline_samples.participantId) # sleep 1 sec to make lastModified different time.sleep(1) self.dao.update_from_biobank_stored_samples() self.assertNotEqual(M_first_update.lastModified, M_second_update.lastModified) self.assertEquals(get_p_baseline_last_modified(), p_baseline_last_modified2)
def test_update_from_samples(self): # baseline_tests = ['BASELINE1', 'BASELINE2'] baseline_tests = ["1PST8", "2PST8"] config.override_setting(config.BASELINE_SAMPLE_TEST_CODES, baseline_tests) self.dao.update_from_biobank_stored_samples() # safe noop p_baseline_samples = self._insert( Participant(participantId=1, biobankId=11)) p_mixed_samples = self._insert( Participant(participantId=2, biobankId=22)) p_no_samples = self._insert(Participant(participantId=3, biobankId=33)) self.assertEquals( self.dao.get( p_baseline_samples.participantId).numBaselineSamplesArrived, 0) sample_dao = BiobankStoredSampleDao() def add_sample(participant, test_code, sample_id): TIME = datetime.datetime(2018, 3, 2) sample_dao.insert( BiobankStoredSample(biobankStoredSampleId=sample_id, biobankId=participant.biobankId, biobankOrderIdentifier='KIT', test=test_code, confirmed=TIME)) add_sample(p_baseline_samples, baseline_tests[0], '11111') add_sample(p_baseline_samples, baseline_tests[1], '22223') add_sample(p_mixed_samples, baseline_tests[0], '11112') add_sample(p_mixed_samples, 'NOT1', '44441') self.dao.update_from_biobank_stored_samples() test_last_modified_doesnt_change_below = self.dao.get(1).lastModified self.assertEquals( self.dao.get( p_baseline_samples.participantId).numBaselineSamplesArrived, 2) self.assertEquals( self.dao.get( p_mixed_samples.participantId).numBaselineSamplesArrived, 1) self.assertEquals( self.dao.get(p_no_samples.participantId).numBaselineSamplesArrived, 0) M_baseline_samples = self._insert( Participant(participantId=9, biobankId=99)) add_sample(M_baseline_samples, baseline_tests[0], '999') M_first_update = self.dao.get(M_baseline_samples.participantId) self.dao.update_from_biobank_stored_samples() add_sample(M_baseline_samples, baseline_tests[1], '9999') M_second_update = self.dao.get(M_baseline_samples.participantId) self.dao.update_from_biobank_stored_samples() p_baseline_update = self.dao.get(p_baseline_samples.participantId) self.assertNotEqual(M_first_update.lastModified, M_second_update.lastModified) self.assertEquals(p_baseline_update.lastModified, test_last_modified_doesnt_change_below)
def test_nonprod(self): # The dev config is isntalled by default for tests, reset. config.override_setting(config.ALLOW_NONPROD_REQUESTS, False) with self.assertRaises(Forbidden): not_in_prod() config.override_setting(config.ALLOW_NONPROD_REQUESTS, True) not_in_prod()
def setUp(self): super(BiobankSamplesPipelineTest, self).setUp(use_mysql=True) NdbTestBase.doSetUp(self) TestBase.setup_fake(self) config.override_setting(config.BASELINE_SAMPLE_TEST_CODES, _BASELINE_TESTS) # Everything is stored as a list, so override bucket name as a 1-element list. config.override_setting(config.BIOBANK_SAMPLES_BUCKET_NAME, [_FAKE_BUCKET]) self.participant_dao = ParticipantDao()
def setUp(self): super(MainTest, self).setUp() config.override_setting(config.INTERNAL_STATUS_MAIL_SENDER, ['*****@*****.**']) config.override_setting(config.INTERNAL_STATUS_MAIL_RECIPIENTS, ['*****@*****.**']) config.override_setting(config.BIOBANK_STATUS_MAIL_RECIPIENTS, ['*****@*****.**'])
def test_update_from_samples(self): baseline_tests = ['BASELINE1', 'BASELINE2'] config.override_setting(config.BASELINE_SAMPLE_TEST_CODES, baseline_tests) self.dao.update_from_biobank_stored_samples() # safe noop p_baseline_samples = self._insert( Participant(participantId=1, biobankId=11)) p_mixed_samples = self._insert( Participant(participantId=2, biobankId=22)) p_no_samples = self._insert(Participant(participantId=3, biobankId=33)) self.assertEquals( self.dao.get( p_baseline_samples.participantId).numBaselineSamplesArrived, 0) sample_dao = BiobankStoredSampleDao() def add_sample(participant, test_code, sample_id): sample_dao.insert( BiobankStoredSample(biobankStoredSampleId=sample_id, biobankId=participant.biobankId, test=test_code)) add_sample(p_baseline_samples, baseline_tests[0], '11111') add_sample(p_baseline_samples, baseline_tests[1], '22223') add_sample(p_mixed_samples, baseline_tests[0], '11112') add_sample(p_mixed_samples, 'NOT1', '44441') self.dao.update_from_biobank_stored_samples() self.assertEquals( self.dao.get( p_baseline_samples.participantId).numBaselineSamplesArrived, 2) self.assertEquals( self.dao.get( p_mixed_samples.participantId).numBaselineSamplesArrived, 1) self.assertEquals( self.dao.get(p_no_samples.participantId).numBaselineSamplesArrived, 0)
def setUp(self): super(GenomicPipelineTest, self).setUp(use_mysql=True) NdbTestBase.doSetUp(self) TestBase.setup_fake(self) # Everything is stored as a list, so override bucket name as a 1-element list. config.override_setting(config.GENOMIC_SET_BUCKET_NAME, [_FAKE_BUCKET]) config.override_setting(config.BIOBANK_SAMPLES_BUCKET_NAME, [_FAKE_BIOBANK_SAMPLE_BUCKET]) config.override_setting(config.GENOMIC_BIOBANK_MANIFEST_FOLDER_NAME, [_FAKE_BUCKET_FOLDER]) config.override_setting( config.GENOMIC_BIOBANK_MANIFEST_RESULT_FOLDER_NAME, [_FAKE_BUCKET_RESULT_FOLDER]) self.participant_dao = ParticipantDao() self.summary_dao = ParticipantSummaryDao() self._participant_i = 1
def setUp(self): super(QuestionnaireResponseDaoTest, self).setUp() self.code_dao = CodeDao() self.participant_dao = ParticipantDao() self.questionnaire_dao = QuestionnaireDao() self.questionnaire_response_dao = QuestionnaireResponseDao() self.questionnaire_response_answer_dao = QuestionnaireResponseAnswerDao( ) self.participant_summary_dao = ParticipantSummaryDao() self.CODE_1 = Code(codeId=1, system=PPI_SYSTEM, value=GENDER_IDENTITY_QUESTION_CODE, display=u'c', topic=u'd', codeType=CodeType.QUESTION, mapped=True) self.CODE_2 = Code(codeId=2, system='a', value='x', display=u'y', codeType=CodeType.QUESTION, mapped=False) self.CODE_3 = Code(codeId=3, system='a', value='c', codeType=CodeType.ANSWER, mapped=True, parentId=1) self.CODE_4 = Code(codeId=4, system='a', value='d', codeType=CodeType.ANSWER, mapped=True, parentId=2) self.CODE_5 = Code(codeId=5, system='a', value='e', codeType=CodeType.ANSWER, mapped=False, parentId=1) self.CODE_6 = Code(codeId=6, system='a', value='f', codeType=CodeType.ANSWER, mapped=True, parentId=1) self.MODULE_CODE_7 = Code(codeId=7, system=PPI_SYSTEM, value=THE_BASICS_PPI_MODULE, codeType=CodeType.MODULE, mapped=True) self.CONCEPT_1 = QuestionnaireConcept(codeId=7) self.CODE_1_QUESTION_1 = QuestionnaireQuestion(linkId='a', codeId=1, repeats=False) self.CODE_2_QUESTION = QuestionnaireQuestion(linkId='d', codeId=2, repeats=True) # Same code as question 1 self.CODE_1_QUESTION_2 = QuestionnaireQuestion(linkId='x', codeId=1, repeats=False) self.skip_code = Code(codeId=8, system=PPI_SYSTEM, value=PMI_SKIP_CODE, mapped=True, codeType=CodeType.ANSWER) config.override_setting(config.CONSENT_PDF_BUCKET, [_FAKE_BUCKET])
def test_make_update_organizations_job(self, mock_build, mock_get_application_id): mock_build.return_value = 'foo' mock_get_application_id.return_value = 'app_id' config.override_setting(config.EHR_STATUS_BIGQUERY_VIEW_ORGANIZATION, ['some_view']) job = offline.update_ehr_status.make_update_organizations_job() self.assertNotEqual(job, None) config.override_setting(config.EHR_STATUS_BIGQUERY_VIEW_ORGANIZATION, ['a', 'b']) job = offline.update_ehr_status.make_update_organizations_job() self.assertEqual(job, None) config.override_setting(config.EHR_STATUS_BIGQUERY_VIEW_ORGANIZATION, ['']) job = offline.update_ehr_status.make_update_organizations_job() self.assertEqual(job, None) config.override_setting(config.EHR_STATUS_BIGQUERY_VIEW_ORGANIZATION, [None]) job = offline.update_ehr_status.make_update_organizations_job() self.assertEqual(job, None) config.override_setting(config.EHR_STATUS_BIGQUERY_VIEW_PARTICIPANT, []) job = offline.update_ehr_status.make_update_participant_summaries_job() self.assertEqual(job, None) config.override_setting(config.EHR_STATUS_BIGQUERY_VIEW_PARTICIPANT, None) job = offline.update_ehr_status.make_update_participant_summaries_job() self.assertEqual(job, None)