Updates
This commit is contained in:
147
ETB-API/compliance_governance/tests.py
Normal file
147
ETB-API/compliance_governance/tests.py
Normal file
@@ -0,0 +1,147 @@
|
||||
"""
|
||||
Tests for Compliance & Governance module
|
||||
"""
|
||||
from django.test import TestCase
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.utils import timezone
|
||||
from datetime import date, timedelta
|
||||
|
||||
from .models import (
|
||||
RegulatoryFramework,
|
||||
ComplianceRequirement,
|
||||
EvidenceCollection,
|
||||
RetentionPolicy,
|
||||
ExportRequest,
|
||||
LegalHold,
|
||||
)
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
|
||||
class RegulatoryFrameworkModelTest(TestCase):
|
||||
"""Test cases for RegulatoryFramework model"""
|
||||
|
||||
def setUp(self):
|
||||
self.user = User.objects.create_user(
|
||||
username='testuser',
|
||||
email='test@example.com',
|
||||
password='testpass123'
|
||||
)
|
||||
|
||||
def test_create_framework(self):
|
||||
"""Test creating a regulatory framework"""
|
||||
framework = RegulatoryFramework.objects.create(
|
||||
name='Test GDPR Framework',
|
||||
framework_type='GDPR',
|
||||
version='1.0',
|
||||
description='Test framework',
|
||||
applicable_regions=['EU', 'UK'],
|
||||
industry_sectors=['Technology'],
|
||||
is_active=True,
|
||||
effective_date=date.today(),
|
||||
created_by=self.user
|
||||
)
|
||||
|
||||
self.assertEqual(framework.name, 'Test GDPR Framework')
|
||||
self.assertEqual(framework.framework_type, 'GDPR')
|
||||
self.assertTrue(framework.is_active)
|
||||
self.assertEqual(framework.created_by, self.user)
|
||||
|
||||
def test_framework_str_representation(self):
|
||||
"""Test string representation of framework"""
|
||||
framework = RegulatoryFramework.objects.create(
|
||||
name='Test Framework',
|
||||
framework_type='GDPR',
|
||||
version='1.0',
|
||||
description='Test',
|
||||
is_active=True,
|
||||
effective_date=date.today()
|
||||
)
|
||||
|
||||
self.assertEqual(str(framework), 'Test Framework v1.0')
|
||||
|
||||
|
||||
class ComplianceRequirementModelTest(TestCase):
|
||||
"""Test cases for ComplianceRequirement model"""
|
||||
|
||||
def setUp(self):
|
||||
self.user = User.objects.create_user(
|
||||
username='testuser',
|
||||
email='test@example.com',
|
||||
password='testpass123'
|
||||
)
|
||||
|
||||
self.framework = RegulatoryFramework.objects.create(
|
||||
name='Test Framework',
|
||||
framework_type='GDPR',
|
||||
version='1.0',
|
||||
description='Test',
|
||||
is_active=True,
|
||||
effective_date=date.today()
|
||||
)
|
||||
|
||||
def test_create_requirement(self):
|
||||
"""Test creating a compliance requirement"""
|
||||
requirement = ComplianceRequirement.objects.create(
|
||||
framework=self.framework,
|
||||
requirement_id='GDPR-001',
|
||||
title='Test Requirement',
|
||||
description='Test requirement description',
|
||||
requirement_type='TECHNICAL',
|
||||
priority='HIGH',
|
||||
responsible_team='Security Team',
|
||||
assigned_to=self.user
|
||||
)
|
||||
|
||||
self.assertEqual(requirement.requirement_id, 'GDPR-001')
|
||||
self.assertEqual(requirement.framework, self.framework)
|
||||
self.assertEqual(requirement.assigned_to, self.user)
|
||||
self.assertEqual(requirement.compliance_status, 'NOT_ASSESSED')
|
||||
|
||||
|
||||
class RetentionPolicyModelTest(TestCase):
|
||||
"""Test cases for RetentionPolicy model"""
|
||||
|
||||
def setUp(self):
|
||||
self.user = User.objects.create_user(
|
||||
username='testuser',
|
||||
email='test@example.com',
|
||||
password='testpass123'
|
||||
)
|
||||
|
||||
def test_create_retention_policy(self):
|
||||
"""Test creating a retention policy"""
|
||||
policy = RetentionPolicy.objects.create(
|
||||
name='Test Retention Policy',
|
||||
description='Test policy description',
|
||||
policy_type='INCIDENT_DATA',
|
||||
retention_period=7,
|
||||
retention_unit='YEARS',
|
||||
auto_archive=True,
|
||||
auto_delete=False,
|
||||
is_active=True,
|
||||
effective_date=date.today(),
|
||||
created_by=self.user
|
||||
)
|
||||
|
||||
self.assertEqual(policy.name, 'Test Retention Policy')
|
||||
self.assertEqual(policy.retention_period, 7)
|
||||
self.assertEqual(policy.retention_unit, 'YEARS')
|
||||
self.assertTrue(policy.auto_archive)
|
||||
self.assertFalse(policy.auto_delete)
|
||||
|
||||
def test_get_retention_duration(self):
|
||||
"""Test getting retention duration as timedelta"""
|
||||
policy = RetentionPolicy.objects.create(
|
||||
name='Test Policy',
|
||||
description='Test',
|
||||
policy_type='INCIDENT_DATA',
|
||||
retention_period=2,
|
||||
retention_unit='YEARS',
|
||||
is_active=True,
|
||||
effective_date=date.today()
|
||||
)
|
||||
|
||||
duration = policy.get_retention_duration()
|
||||
expected_days = 2 * 365 # 2 years
|
||||
self.assertEqual(duration.days, expected_days)
|
||||
Reference in New Issue
Block a user