mirror of
https://github.com/jazzband/django-auditlog.git
synced 2026-03-16 22:20:26 +00:00
* Add test runner and improve test with multi databases * Enhance cross-database compatibility and testing - Fix TRUNCATE command support detection for different databases - Add conditional PostgreSQL-specific model registration - Improve database-specific test skipping logic - Remove SQLite from TRUNCATE supported vendors list * Add docker compose for testing * Improve CI/CD with multi-database support - Add separate test workflows for SQLite, PostgreSQL, and MySQL * Add `mysqlclient` deps * fix minor - Add mysqlclient deps - upload coverage step * Fix coverage upload name conflicts in CI workflow - Add database type to coverage upload names (SQLite/PostgreSQL/MySQL)
51 lines
1.6 KiB
Python
51 lines
1.6 KiB
Python
"""
|
|
PostgreSQL-specific tests for django-auditlog.
|
|
"""
|
|
|
|
from unittest import skipIf
|
|
|
|
from django.conf import settings
|
|
from django.test import TestCase
|
|
from test_app.models import PostgresArrayFieldModel
|
|
|
|
|
|
@skipIf(settings.TEST_DB_BACKEND != "postgresql", "PostgreSQL-specific test")
|
|
class PostgresArrayFieldModelTest(TestCase):
|
|
databases = "__all__"
|
|
|
|
def setUp(self):
|
|
self.obj = PostgresArrayFieldModel.objects.create(
|
|
arrayfield=[PostgresArrayFieldModel.RED, PostgresArrayFieldModel.GREEN],
|
|
)
|
|
|
|
@property
|
|
def latest_array_change(self):
|
|
return self.obj.history.latest().changes_display_dict["arrayfield"][1]
|
|
|
|
def test_changes_display_dict_arrayfield(self):
|
|
self.assertEqual(
|
|
self.latest_array_change,
|
|
"Red, Green",
|
|
msg="The human readable text for the two choices, 'Red, Green' is displayed.",
|
|
)
|
|
self.obj.arrayfield = [PostgresArrayFieldModel.GREEN]
|
|
self.obj.save()
|
|
self.assertEqual(
|
|
self.latest_array_change,
|
|
"Green",
|
|
msg="The human readable text 'Green' is displayed.",
|
|
)
|
|
self.obj.arrayfield = []
|
|
self.obj.save()
|
|
self.assertEqual(
|
|
self.latest_array_change,
|
|
"",
|
|
msg="The human readable text '' is displayed.",
|
|
)
|
|
self.obj.arrayfield = [PostgresArrayFieldModel.GREEN]
|
|
self.obj.save()
|
|
self.assertEqual(
|
|
self.latest_array_change,
|
|
"Green",
|
|
msg="The human readable text 'Green' is displayed.",
|
|
)
|