|
| 1 | +"""Test dummy models for optional django-ansible-base apps.""" |
| 2 | + |
| 3 | +import pytest |
| 4 | + |
| 5 | +from ansible_base.rbac.models.dummy_models import DummyAuditableModel |
| 6 | + |
| 7 | + |
| 8 | +class TestDummyModel(DummyAuditableModel): |
| 9 | + """Test model using DummyAuditableModel for testing.""" |
| 10 | + |
| 11 | + class Meta: |
| 12 | + app_label = 'test_app' |
| 13 | + |
| 14 | + |
| 15 | +@pytest.mark.django_db |
| 16 | +def test_dummy_auditable_model_interface(): |
| 17 | + """Test that DummyAuditableModel provides expected interface without crashing.""" |
| 18 | + # Create test instance |
| 19 | + test_obj = TestDummyModel() |
| 20 | + |
| 21 | + # Test activity_stream_entries property |
| 22 | + entries = test_obj.activity_stream_entries |
| 23 | + assert entries.count() == 0, "Dummy model should return empty count" |
| 24 | + assert entries.last() is None, "Dummy model should return None for last()" |
| 25 | + assert list(entries) == [], "Dummy model should return empty list" |
| 26 | + assert entries.all() == entries, "all() should return self" |
| 27 | + assert entries.order_by('id') == entries, "order_by() should return self" |
| 28 | + |
| 29 | + # Test class attributes |
| 30 | + assert hasattr(test_obj, 'activity_stream_excluded_field_names') |
| 31 | + assert test_obj.activity_stream_excluded_field_names == [] |
| 32 | + assert hasattr(test_obj, 'activity_stream_limit_field_names') |
| 33 | + assert test_obj.activity_stream_limit_field_names == [] |
| 34 | + |
| 35 | + # Test extra_related_fields method |
| 36 | + assert test_obj.extra_related_fields(None) == {} |
| 37 | + |
| 38 | + |
| 39 | +def test_dummy_model_import_safety(): |
| 40 | + """Test that DummyAuditableModel can be imported safely.""" |
| 41 | + # The main purpose is that this import doesn't crash AWX/EDA |
| 42 | + from ansible_base.rbac.models.dummy_models import DummyAuditableModel |
| 43 | + |
| 44 | + # Basic verification that it's properly configured |
| 45 | + assert DummyAuditableModel._meta.abstract is True |
0 commit comments