def test_preconditions_failed_with_several_mandatory_evidences(self):
        """Preconditions failed if count(evidences) < count(evidences_required)."""
        ca1 = CustomAttributeMock(self.assessment,
                                  attribute_type="Dropdown",
                                  dropdown_parameters=("foo,evidence_required",
                                                       "0,2"),
                                  value="evidence_required")
        ca2 = CustomAttributeMock(self.assessment,
                                  attribute_type="Dropdown",
                                  dropdown_parameters=("foo,evidence_required",
                                                       "0,2"),
                                  value="evidence_required")
        # only one evidence provided yet
        evidence = factories.DocumentFactory(title="Mandatory evidence", )
        factories.ObjectDocumentFactory(
            documentable=self.assessment,
            document=evidence,
        )

        preconditions_failed = self.assessment.preconditions_failed

        self.assertEqual(preconditions_failed, True)
        self.assertEqual(ca1.value.preconditions_failed, ["evidence"])
        self.assertEqual(ca2.value.preconditions_failed, ["evidence"])

        # the second evidence
        evidence = factories.DocumentFactory(
            title="Second mandatory evidence", )
        factories.ObjectDocumentFactory(
            documentable=self.assessment,
            document=evidence,
        )

        preconditions_failed = self.assessment.preconditions_failed

        self.assertEqual(preconditions_failed, False)
        self.assertFalse(ca1.value.preconditions_failed)
        self.assertFalse(ca2.value.preconditions_failed)
    def test_preconditions_failed_with_present_mandatory_evidence(self):
        """No preconditions failed if evidence required by CA is present."""
        ca = CustomAttributeMock(
            self.assessment,
            attribute_type="Dropdown",
            dropdown_parameters=("foo,evidence_required", "0,2"),
            value="evidence_required",
        )
        evidence = factories.DocumentFactory(title="Mandatory evidence", )
        factories.ObjectDocumentFactory(
            documentable=self.assessment,
            document=evidence,
        )

        preconditions_failed = self.assessment.preconditions_failed

        self.assertEqual(preconditions_failed, False)
        self.assertFalse(ca.value.preconditions_failed)