from django.contrib.auth.models import User from django.test import TestCase from access_core.governance.models import AuditEvent class AuditEventTest(TestCase): def test_create_audit_event(self): user = User.objects.create_user(username="auditor", email="auditor@example.com") import uuid event = AuditEvent.objects.create( user=user, action="create", target_table="intake_records", target_record_id=uuid.uuid4(), changed_fields={"first_name": "[REDACTED]"}, ip_address="10.0.1.42", ) self.assertEqual(event.action, "create") self.assertIsNotNone(event.created_at) self.assertEqual(event.changed_fields["first_name"], "[REDACTED]") class SafetySignalEventTest(TestCase): def test_create_safety_signal(self): from access_core.identity.models import Beneficiary from access_core.intake.models import IntakeRecord from access_core.monitoring.models import CarePeriod, ClinicalTrack track = ClinicalTrack.objects.create(track_name="CKM") intake = IntakeRecord.objects.create( external_form_id="synth-sig-001", first_name="Signal", last_name="Patient", dob="1962-01-01", sex="female", is_synthetic=True, ) ben = Beneficiary.objects.create( intake_record=intake, first_name="Signal", last_name="Patient", dob="1962-01-01", sex="female", is_synthetic=True, ) cp = CarePeriod.objects.create( beneficiary=ben, clinical_track=track, start_date="2026-01-01", ) signal = self._create_signal(ben, cp) self.assertEqual(signal.signal_severity, "red") self.assertEqual(signal.review_status, "pending") def _create_signal(self, ben, cp): from access_core.governance.models import SafetySignalEvent return SafetySignalEvent.objects.create( beneficiary=ben, care_period=cp, signal_severity="red", signal_type="chest_pain", signal_details={"source": "daily_checkin"}, auto_generated=True, review_status="pending", )