Ejemplo n.º 1
0
 def test_insert_double_edge_in(self):
     with self.g.session_scope() as s:
         case = md.Case('case_id_1')
         sample1 = md.Sample('sample_id_1')
         sample2 = md.Sample('sample_id_2')
         case.samples = [sample1, sample2]
         s.merge(case)
Ejemplo n.º 2
0
 def test_delete_dst_association_proxy(self):
     with self.g.session_scope() as s:
         case = md.Case('case_id_1')
         aliquot = md.Aliquot('aliquot_id_1')
         sample = md.Sample('sample_id_1')
         aliquot.samples = [sample]
         sample.cases = [case]
         s.merge(case)
Ejemplo n.º 3
0
    def test_insert_update_children(self):
        with self.g.session_scope() as s:
            aliquot = s.merge(md.Aliquot('aliquot_id_1'))
            sample = s.merge(md.Sample('sample_id_1'))
            aliquot.samples = [sample]
            s.merge(md.Case('case_id_1'))

        with self.g.session_scope() as s:
            case = self.g.nodes(md.Case).one()
            sample = self.g.nodes(md.Sample).one()
            sample.cases = [case]
Ejemplo n.º 4
0
    def test_insert_double_edge_out(self):
        with self.g.session_scope() as s:
            case1 = md.Case('case_id_1')
            case2 = md.Case('case_id_2')
            sample = md.Sample('sample_id_1')
            sample.cases = [case1, case2]
            s.merge(sample)

        with self.g.session_scope() as s:
            sample = self.g.nodes(md.Sample).subq_path('cases').one()
            assert {c.node_id for c in sample._related_cases} == \
                   {c.node_id for c in [case1, case2]}
Ejemplo n.º 5
0
    def test_no_datetime_update_for_new_edge(self):
        """Verify new inbound edges do not affect a node's updated datetime."""
        with self.g.session_scope() as s:
            s.merge(md.Case('case1'))

        with self.g.session_scope() as s:
            case = self.g.nodes(md.Case).one()
            old_created_datetime = case.created_datetime
            old_updated_datetime = case.updated_datetime

            sample = s.merge(md.Sample('sample1'))
            case.samples.append(sample)
Ejemplo n.º 6
0
    def test_preserve_timestamps(self):
        """Confirm cache changes do not affect the case's timestamps."""
        with self.g.session_scope() as s:
            s.merge(md.Case('case_id_1'))

        with self.g.session_scope():
            case = self.g.nodes(md.Case).one()
            old_created_datetime = case.created_datetime
            old_updated_datetime = case.updated_datetime

            # Test addition of cache edges.
            sample = md.Sample('sample_id_1')
            portion = md.Portion('portion_id_1')
            analyte = md.Analyte('analyte_id_1')
            aliquot = md.Aliquot('aliquot_id_1')
            sample.cases = [case]
            portion.samples = [sample]
            analyte.portions = [portion]
            aliquot.analytes = [analyte]

            sample2 = md.Sample('sample_id_2')
            sample2.cases = [case]
Ejemplo n.º 7
0
    def test_insert_multiple_edges(self):
        with self.g.session_scope() as s:
            case = md.Case('case_id_1')
            sample = md.Sample('sample_id_1')
            portion = md.Portion('portion_id_1')
            analyte = md.Analyte('analyte_id_1')
            aliquot = md.Aliquot('aliquot_id_1')
            general_file = md.File('file_id_1')

            sample.cases = [case]
            portion.samples = [sample]
            analyte.portions = [portion]
            aliquot.analytes = [analyte]
            general_file.aliquots = [aliquot]
            s.merge(case)
Ejemplo n.º 8
0
    def test_delete_one_parent(self):
        with self.g.session_scope() as s:
            case1 = md.Case('case_id_1')
            case2 = md.Case('case_id_2')
            sample = md.Sample('sample_id_1')
            sample.cases = [case1, case2]
            s.merge(sample)

        with self.g.session_scope() as s:
            case1 = self.g.nodes(md.Case).ids('case_id_1').one()
            s.delete(case1)

        with self.g.session_scope() as s:
            sample = self.g.nodes(md.Sample).one()
            assert sample._related_cases == [case2]
Ejemplo n.º 9
0
    def test_type_validation(self):
        f = md.File()
        with self.assertRaises(ValidationError):
            f.file_size = '0'
        f.file_size = 0

        f = md.File()
        with self.assertRaises(ValidationError):
            f.file_name = 0
        f.file_name = '0'

        s = md.Sample()
        with self.assertRaises(ValidationError):
            s.is_ffpe = 'false'
        s.is_ffpe = False

        s = md.Slide()
        with self.assertRaises(ValidationError):
            s.percent_necrosis = '0.0'
        s.percent_necrosis = 0.0
Ejemplo n.º 10
0
 def test_insert_single_association_proxy(self):
     with self.g.session_scope() as s:
         case = md.Case('case_id_1')
         sample = md.Sample('sample_id_1')
         sample.cases = [case]
         s.merge(sample)
Ejemplo n.º 11
0
 def test_insert_single_edge(self):
     with self.g.session_scope() as s:
         case = s.merge(md.Case('case_id_1'))
         sample = s.merge(md.Sample('sample_id_1'))
         edge = md.SampleDerivedFromCase(sample.node_id, case.node_id)
         s.merge(edge)
Ejemplo n.º 12
0
 def test_delete_parent(self):
     with self.g.session_scope() as s:
         case = md.Case('case_id_1')
         sample = md.Sample('sample_id_1')
         sample.cases = [case]
         s.merge(case)