def test_memory_reproducibility(self): from dlg.common.reproducibility.reproducibility import common_hash data = b'Helloworld' data_hash = common_hash(data) a = InMemoryDROP('a', 'a') a.write(data) a.reproducibility_level = ReproducibilityFlags.RERUN a.setCompleted() b = NullDROP('b', 'b') b.reproducibility_level = ReproducibilityFlags.RERUN b.setCompleted() self.assertEqual(a.merkleroot, b.merkleroot) a.reproducibility_level = ReproducibilityFlags.REPEAT self.assertEqual(a.merkleroot, b.merkleroot) a.reproducibility_level = ReproducibilityFlags.RECOMPUTE self.assertEqual(a.merkleroot, b.merkleroot) a.reproducibility_level = ReproducibilityFlags.REPRODUCE self.assertNotEqual(a.merkleroot, b.merkleroot) self.assertEqual(a.generate_merkle_data(), {'data_hash': data_hash}) a.reproducibility_level = ReproducibilityFlags.REPLICATE_SCI self.assertNotEqual(a.merkleroot, b.merkleroot) self.assertEqual(a.generate_merkle_data(), {'data_hash': data_hash, 'status': DROPStates.COMPLETED}) a.reproducibility_level = ReproducibilityFlags.REPLICATE_COMP self.assertNotEqual(a.merkleroot, b.merkleroot) self.assertEqual(a.generate_merkle_data(), {'data_hash': data_hash, 'status': DROPStates.COMPLETED}) a.reproducibility_level = ReproducibilityFlags.REPLICATE_TOTAL self.assertNotEqual(a.merkleroot, b.merkleroot) self.assertEqual(a.generate_merkle_data(), {'data_hash': data_hash, 'status': DROPStates.COMPLETED})
def test_memory_reproducibility(self): from dlg.common.reproducibility.reproducibility import common_hash data = b"Helloworld" data_hash = common_hash(data) a = InMemoryDROP("a", "a") a.write(data) a.reproducibility_level = ReproducibilityFlags.RERUN a.setCompleted() b = NullDROP("b", "b") b.reproducibility_level = ReproducibilityFlags.RERUN b.setCompleted() self.assertEqual(a.merkleroot, b.merkleroot) a.reproducibility_level = ReproducibilityFlags.REPEAT a.commit() self.assertEqual(a.merkleroot, b.merkleroot) a.reproducibility_level = ReproducibilityFlags.RECOMPUTE a.commit() self.assertEqual(a.merkleroot, b.merkleroot) a.reproducibility_level = ReproducibilityFlags.REPRODUCE a.commit() self.assertNotEqual(a.merkleroot, b.merkleroot) self.assertEqual(a.generate_merkle_data(), {"data_hash": data_hash}) a.reproducibility_level = ReproducibilityFlags.REPLICATE_SCI a.commit() self.assertNotEqual(a.merkleroot, b.merkleroot) self.assertEqual( a.generate_merkle_data(), {"data_hash": data_hash, "status": DROPStates.COMPLETED}, ) a.reproducibility_level = ReproducibilityFlags.REPLICATE_COMP a.commit() self.assertNotEqual(a.merkleroot, b.merkleroot) self.assertEqual( a.generate_merkle_data(), {"data_hash": data_hash, "status": DROPStates.COMPLETED}, ) a.reproducibility_level = ReproducibilityFlags.REPLICATE_TOTAL a.commit() self.assertNotEqual(a.merkleroot, b.merkleroot) self.assertEqual( a.generate_merkle_data(), {"data_hash": data_hash, "status": DROPStates.COMPLETED}, )