def test_match_when_rule_already_executed(self):
     rule_application_log = RuleApplicationLog(NOT_IGNORED_RULE_ID, False)
     rule_application_log_as_metadata = Metadata(RuleApplicationLogJSONEncoder().default(rule_application_log))
     self.cookie.enrichments.add(create_creation_enrichment(datetime(1, 1, 1)))
     self.cookie.enrichments.add(create_creation_enrichment(datetime(3, 3, 3)))
     self.cookie.enrichments.add(Enrichment(RULE_APPLICATION, datetime(2, 2, 2), rule_application_log_as_metadata))
     self.assertFalse(self.rule.matches(self.cookie))
 def test_match_when_created_and_manual_qc_in_irods(self):
     data_object = DataObject("/path", metadata=IrodsMetadata({IRODS_MANUAL_QC_KEY: {INCORRECT_MANUAL_QC_VALUE}}))
     data_object_as_metadata = Metadata(DataObjectJSONEncoder().default(data_object))
     self.cookie.enrichments.add([
         create_creation_enrichment(datetime(1, 1, 1)),
         Enrichment(IRODS_ENRICHMENT, datetime(2, 2, 2), data_object_as_metadata)
     ])
     self.assertTrue(self.rule.matches(self.cookie))
 def test_match_when_created_and_manual_qc_in_update(self):
     modification = DataObjectModification(IrodsMetadata({IRODS_MANUAL_QC_KEY: {INCORRECT_MANUAL_QC_VALUE}}))
     modification_as_metadata = Metadata(DataObjectModificationJSONEncoder().default(modification))
     self.cookie.enrichments.add([
         create_creation_enrichment(datetime(1, 1, 1)),
         Enrichment(IRODS_UPDATE_ENRICHMENT, datetime(2, 2, 2), modification_as_metadata)
     ])
     self.assertTrue(self.rule.matches(self.cookie))
 def test_no_match_when_created_but_unknown_manual_qc(self):
     modification = DataObjectModification(IrodsMetadata({IRODS_MANUAL_QC_KEY: {"unknown"}}))
     modification_as_metadata = Metadata(DataObjectModificationJSONEncoder().default(modification))
     self.cookie.enrichments.add([
         create_creation_enrichment(datetime(1, 1, 1)),
         Enrichment(IRODS_UPDATE_ENRICHMENT, datetime(2, 2, 2), modification_as_metadata)
     ])
     self.assertFalse(self.rule.matches(self.cookie))
 def test_no_match_when_created_but_no_manual_qc_defined(self):
     self.cookie.enrichments.add(create_creation_enrichment(datetime(1, 1, 1)))
     self.assertFalse(self.rule.matches(self.cookie))
 def test_match_when_irrelevant_enrichments(self):
     rule_application_log = RuleApplicationLog("other", False)
     rule_application_log_as_metadata = Metadata(RuleApplicationLogJSONEncoder().default(rule_application_log))
     self.cookie.enrichments.add(create_creation_enrichment(datetime(1, 1, 1)))
     self.cookie.enrichments.add(Enrichment(RULE_APPLICATION, datetime(2, 2, 2), rule_application_log_as_metadata))
     self.assertTrue(self.rule.matches(self.cookie))