5 from ROOT
import Belle2
11 class PythonDataStoreTests(unittest.TestCase):
13 def test_PyStoreObj(self):
16 objList = (testObj, persistentObj)
22 self.assertTrue(
not obj)
23 self.assertTrue(
not obj.create())
26 self.assertTrue(
not obj.registerInDataStore())
29 self.assertTrue(
not obj)
35 def test_PyStoreObj_with_known_class(self):
40 self.assertTrue(eventMetaData.registerInDataStore())
42 self.assertFalse(eventMetaData.isValid())
43 eventMetaData.create()
44 self.assertTrue(eventMetaData.isValid())
47 eventMetaData.setExperiment(17)
51 self.assertTrue(eventMetaData2.isValid())
52 self.assertEqual(17, eventMetaData.getExperiment())
58 def test_PyStoreArray(self):
66 for array
in arrayList:
67 self.assertTrue(
not array)
68 self.assertEqual(0, array.getEntries())
69 self.assertEqual(0, len(array))
71 self.assertTrue(
not array[1234])
72 self.assertTrue(
not array.appendNew())
73 self.assertEqual(0, len(array))
75 def test_EnumBackwardsCompatibility(self):
76 self.assertEqual(0, Belle2.DataStore.c_Event)
77 self.assertEqual(1, Belle2.DataStore.c_Persistent)
80 def test_PyStoreArray_with_known_class(self):
84 self.assertTrue(array.registerInDataStore(
"RelationsObjects"))
85 self.assertEqual(
"RelationsObjects", array.getName())
89 self.assertEqual(
"OtherRelationsObjects", otherArray.getName())
90 self.assertTrue(otherArray.registerInDataStore())
92 array.registerRelationTo(otherArray)
94 self.assertTrue(array.hasRelationTo(otherArray))
95 self.assertTrue(otherArray.hasRelationFrom(array))
96 self.assertFalse(array.hasRelationFrom(otherArray))
97 self.assertFalse(otherArray.hasRelationTo(array))
99 obj = array.appendNew()
101 self.assertEqual(1, len(array))
102 self.assertTrue(array[0])
109 self.assertTrue(
False)
111 otherObject = otherArray.appendNew()
112 obj.addRelationTo(otherObject)
120 otherArray2.isRequired()
122 self.assertEqual(1, len(array2))
123 self.assertEqual(1, len(otherArray2))
125 array2.requireRelationTo(otherArray2)
127 self.assertEqual(obj, obj2)
129 otherObject2 = obj2.getRelated(
"OtherRelationsObjects")
130 self.assertEqual(otherObject, otherObject2)
133 if __name__ ==
"__main__":
134 basf2.B2INFO(
"Following error messages are expected, please ignore.")
136 basf2.B2INFO(
"Previous errors are expected, please ignore.")