| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- """Unit tests for preferred_slicer setting in AppSettings schema."""
- import pytest
- from backend.app.schemas.settings import AppSettings, AppSettingsUpdate
- @pytest.mark.unit
- class TestPreferredSlicerSchema:
- """Tests for the preferred_slicer field in settings schemas."""
- def test_default_value_is_bambu_studio(self):
- """Default preferred_slicer should be bambu_studio."""
- settings = AppSettings()
- assert settings.preferred_slicer == "bambu_studio"
- def test_set_to_orcaslicer(self):
- """Should accept orcaslicer as a valid value."""
- settings = AppSettings(preferred_slicer="orcaslicer")
- assert settings.preferred_slicer == "orcaslicer"
- def test_set_to_bambu_studio_explicit(self):
- """Should accept bambu_studio as an explicit value."""
- settings = AppSettings(preferred_slicer="bambu_studio")
- assert settings.preferred_slicer == "bambu_studio"
- def test_update_schema_default_is_none(self):
- """AppSettingsUpdate preferred_slicer should default to None."""
- update = AppSettingsUpdate()
- assert update.preferred_slicer is None
- def test_update_schema_accepts_value(self):
- """AppSettingsUpdate should accept a preferred_slicer value."""
- update = AppSettingsUpdate(preferred_slicer="orcaslicer")
- assert update.preferred_slicer == "orcaslicer"
- def test_serialization_roundtrip(self):
- """Settings should survive serialization roundtrip."""
- settings = AppSettings(preferred_slicer="orcaslicer")
- data = settings.model_dump()
- restored = AppSettings(**data)
- assert restored.preferred_slicer == "orcaslicer"
- def test_partial_update_preserves_other_fields(self):
- """Updating preferred_slicer should not affect other fields."""
- update = AppSettingsUpdate(preferred_slicer="orcaslicer")
- data = update.model_dump(exclude_none=True)
- assert data == {"preferred_slicer": "orcaslicer"}
|