(refactor) Normalize runtime config labels
Hide the old pobsync_home field from the Django admin and replace legacy operator-facing labels with runtime state root and backup root terminology. Rename admin compatibility fieldsets, update self-check/config-check text, and refresh management command help so Django/systemd stays the primary mental model.
This commit is contained in:
@@ -5,11 +5,25 @@ from datetime import datetime, timezone
|
||||
from django.contrib.admin.sites import AdminSite
|
||||
from django.test import TestCase
|
||||
|
||||
from pobsync_backend.admin import BackupRunAdmin, HostConfigAdmin, SnapshotRecordAdmin
|
||||
from pobsync_backend.models import BackupRun, HostConfig, ScheduleConfig, SnapshotRecord
|
||||
from pobsync_backend.admin import BackupRunAdmin, GlobalConfigAdmin, HostConfigAdmin, SnapshotRecordAdmin
|
||||
from pobsync_backend.models import BackupRun, GlobalConfig, HostConfig, ScheduleConfig, SnapshotRecord
|
||||
|
||||
|
||||
class AdminDisplayTests(TestCase):
|
||||
def test_admin_hides_old_global_state_field_and_uses_compatibility_label(self) -> None:
|
||||
site = AdminSite()
|
||||
global_admin = GlobalConfigAdmin(GlobalConfig, site)
|
||||
host_admin = HostConfigAdmin(HostConfig, site)
|
||||
|
||||
global_fieldsets = list(global_admin.fieldsets)
|
||||
host_fieldsets = list(host_admin.fieldsets)
|
||||
global_fields = [field for _name, options in global_fieldsets for field in options["fields"]]
|
||||
fieldset_names = [name for name, _options in [*global_fieldsets, *host_fieldsets]]
|
||||
|
||||
self.assertNotIn("pobsync_home", global_fields)
|
||||
self.assertIn("Compatibility data", fieldset_names)
|
||||
self.assertNotIn("Legacy JSON", fieldset_names)
|
||||
|
||||
def test_host_admin_links_to_related_snapshots_and_runs(self) -> None:
|
||||
site = AdminSite()
|
||||
admin = HostConfigAdmin(HostConfig, site)
|
||||
|
||||
@@ -237,7 +237,7 @@ class ViewTests(TestCase):
|
||||
self.assertContains(response, "Self Check")
|
||||
self.assertContains(response, "Django debug")
|
||||
self.assertContains(response, "Database connection")
|
||||
self.assertContains(response, "POBSYNC_HOME")
|
||||
self.assertContains(response, "State root")
|
||||
|
||||
def test_logs_view_renders_filtered_journal_messages(self) -> None:
|
||||
self.client.force_login(self.staff_user)
|
||||
@@ -502,7 +502,7 @@ class ViewTests(TestCase):
|
||||
GlobalConfig.objects.create(
|
||||
name="default",
|
||||
backup_root="/mnt/pobsync/backups",
|
||||
pobsync_home="/custom/legacy/home",
|
||||
pobsync_home="/custom/state/home",
|
||||
)
|
||||
|
||||
response = self.client.get(reverse("edit_global_config"))
|
||||
@@ -512,8 +512,10 @@ class ViewTests(TestCase):
|
||||
self.assertContains(response, "/backups")
|
||||
self.assertContains(response, "Config Check")
|
||||
self.assertContains(response, "Runtime backup root")
|
||||
self.assertContains(response, "Runtime state root")
|
||||
self.assertNotContains(response, "/opt/pobsync/backups")
|
||||
self.assertNotContains(response, "Pobsync home")
|
||||
self.assertNotContains(response, "Global pobsync home")
|
||||
|
||||
def test_global_config_form_renders_config_check_for_non_recursive_rsync(self) -> None:
|
||||
self.client.force_login(self.staff_user)
|
||||
@@ -530,7 +532,7 @@ class ViewTests(TestCase):
|
||||
GlobalConfig.objects.create(
|
||||
name="default",
|
||||
backup_root="/mnt/pobsync/backups",
|
||||
pobsync_home="/custom/legacy/home",
|
||||
pobsync_home="/custom/state/home",
|
||||
)
|
||||
|
||||
response = self.client.post(
|
||||
|
||||
Reference in New Issue
Block a user