deriva 1.7.3__py3-none-any.whl → 1.7.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -76,33 +76,33 @@ def define_test_schema(catalog):
76
76
  )
77
77
  isa.create_table(table_def)
78
78
 
79
- # create TNAME_EXPERIMENT table
80
- table_def = _em.Table.define(
81
- TNAME_EXPERIMENT,
82
- column_defs=[
83
- _em.Column.define(cname, ctype) for (cname, ctype) in [
84
- ('Name', _em.builtin_types.text),
85
- ('Amount', _em.builtin_types.int4),
86
- ('Time', _em.builtin_types.timestamptz),
87
- ('Type', _em.builtin_types.text),
88
- ('Project Investigator', _em.builtin_types.text),
89
- ('Project_Num', _em.builtin_types.int4),
90
- ('Empty', _em.builtin_types.int4)
79
+ # experiment table definition helper
80
+ def exp_table_def(exp_table_name):
81
+ return _em.Table.define(
82
+ exp_table_name,
83
+ column_defs=[
84
+ _em.Column.define(cname, ctype) for (cname, ctype) in [
85
+ ('Name', _em.builtin_types.text),
86
+ ('Amount', _em.builtin_types.int4),
87
+ ('Time', _em.builtin_types.timestamptz),
88
+ ('Type', _em.builtin_types.text),
89
+ ('Project Investigator', _em.builtin_types.text),
90
+ ('Project_Num', _em.builtin_types.int4),
91
+ ('Empty', _em.builtin_types.int4)
92
+ ]
93
+ ],
94
+ key_defs=[
95
+ _em.Key.define(['Name'])
96
+ ],
97
+ fkey_defs=[
98
+ _em.ForeignKey.define(['Type'], SNAME_VOCAB, TNAME_EXPERIMENT_TYPE, ['ID']),
99
+ _em.ForeignKey.define(['Project Investigator', 'Project_Num'], SNAME_ISA, TNAME_PROJECT, ['Investigator', 'Num'])
91
100
  ]
92
- ],
93
- key_defs=[
94
- _em.Key.define(['Name'])
95
- ],
96
- fkey_defs=[
97
- _em.ForeignKey.define(['Type'], SNAME_VOCAB, TNAME_EXPERIMENT_TYPE, ['ID']),
98
- _em.ForeignKey.define(['Project Investigator', 'Project_Num'], SNAME_ISA, TNAME_PROJECT, ['Investigator', 'Num'])
99
- ]
100
- )
101
- isa.create_table(table_def)
101
+ )
102
102
 
103
- # create copy of TNAME_EXPERIMENT table
104
- table_def['table_name'] = TNAME_EXPERIMENT_COPY
105
- isa.create_table(table_def)
103
+ # create experiment tables
104
+ isa.create_table(exp_table_def(TNAME_EXPERIMENT))
105
+ isa.create_table(exp_table_def(TNAME_EXPERIMENT_COPY))
106
106
 
107
107
 
108
108
  def _generate_experiment_entities(types, count):
@@ -665,6 +665,13 @@ class DatapathTests (unittest.TestCase):
665
665
  df = DataFrame(results)
666
666
  self.assertEqual(len(df), TEST_EXP_MAX)
667
667
 
668
+ def test_insert_double_fetch(self):
669
+ entities = _generate_experiment_entities(self.types, 2)
670
+ results = self.experiment_copy.insert(entities)
671
+ rows1 = results.fetch()
672
+ rows2 = results.fetch()
673
+ self.assertEqual(rows1, rows2)
674
+
668
675
  def test_insert_empty_entities(self):
669
676
  results = self.experiment_copy.insert(None)
670
677
  self.assertEqual(len(results), 0)
@@ -728,6 +735,25 @@ class DatapathTests (unittest.TestCase):
728
735
  with self.assertRaises(TypeError):
729
736
  self.experiment_type.update('this is not a dict')
730
737
 
738
+ def test_delete_whole_path(self):
739
+ self.experiment_copy.insert(_generate_experiment_entities(self.types, 10))
740
+ self.assertEqual(len(self.experiment_copy.entities()), 10)
741
+ self.experiment_copy.path.delete()
742
+ self.assertEqual(len(self.experiment_copy.entities()), 0)
743
+
744
+ def test_delete_filtered_path(self):
745
+ self.experiment_copy.insert(_generate_experiment_entities(self.types, 10))
746
+ expression = self.experiment_copy.column_definitions['Name'] == TEST_EXP_NAME_FORMAT.format(1)
747
+ self.assertEqual(len(self.experiment_copy.filter(expression).entities()), 1)
748
+ self.experiment_copy.filter(expression).delete()
749
+ self.assertEqual(len(self.experiment_copy.filter(expression).entities()), 0)
750
+
751
+ def test_delete_whole_table(self):
752
+ self.experiment_copy.insert(_generate_experiment_entities(self.types, 10))
753
+ self.assertEqual(len(self.experiment_copy.entities()), 10)
754
+ self.experiment_copy.delete()
755
+ self.assertEqual(len(self.experiment_copy.entities()), 0)
756
+
731
757
  def test_nondefaults(self):
732
758
  nondefaults = {'RID', 'RCB', 'RCT'}
733
759
  results = self.experiment.entities()
@@ -830,4 +856,4 @@ class DatapathTests (unittest.TestCase):
830
856
 
831
857
 
832
858
  if __name__ == '__main__':
833
- sys.exit(unittest.main())
859
+ unittest.main()