def testResolving(self): ref = DatasetRef(self.datasetType, self.dataId, id=1, run="somerun") unresolvedRef = ref.unresolved() self.assertIsNotNone(ref.id) self.assertIsNone(unresolvedRef.id) self.assertIsNone(unresolvedRef.run) self.assertNotEqual(ref, unresolvedRef) self.assertEqual(ref.unresolved(), unresolvedRef) self.assertEqual(ref.datasetType, unresolvedRef.datasetType) self.assertEqual(ref.dataId, unresolvedRef.dataId) reresolvedRef = unresolvedRef.resolved(id=1, run="somerun") self.assertEqual(ref, reresolvedRef) self.assertEqual(reresolvedRef.unresolved(), unresolvedRef) self.assertIsNotNone(reresolvedRef.run)
def comparableRef(self, ref: DatasetRef) -> DatasetRef: """Return a DatasetRef that can be compared to a DatasetRef from other repository. For repositories that do not support round-trip of ID values this method returns unresolved DatasetRef, for round-trip-safe repos it returns unchanged ref. """ return ref if self.datasetsIdType is uuid.UUID else ref.unresolved()