Merge pull request #624 from ProtixIT/DescriptorWrapper-no-catch

Remove catching of `AttributeError` in `DescriptorWrapper`
This commit is contained in:
Jelmer 2024-06-13 10:58:11 +02:00 committed by GitHub
commit e35c72427b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 2 additions and 8 deletions

View file

@ -50,10 +50,7 @@ class DescriptorWrapper:
if instance is None:
return self
was_deferred = self.field_name in instance.get_deferred_fields()
try:
value = self.descriptor.__get__(instance, owner)
except AttributeError:
value = self.descriptor
value = self.descriptor.__get__(instance, owner)
if was_deferred:
tracker_instance = getattr(instance, self.tracker_attname)
tracker_instance.saved_data[self.field_name] = lightweight_deepcopy(value)

View file

@ -249,7 +249,7 @@ class TrackedAbstract(AbstractTracked):
number = models.IntegerField()
mutable = MutableField(default=None)
tracker = FieldTracker()
tracker = ModelTracker()
class TrackedNotDefault(models.Model):

View file

@ -1,7 +1,5 @@
from __future__ import annotations
from unittest import skip
from django.core.cache import cache
from django.core.exceptions import FieldError
from django.db import models
@ -877,7 +875,6 @@ class InheritedModelTrackerTests(ModelTrackerTests):
self.assertTrue(self.tracker.has_changed('name2'))
@skip("has known failures")
class AbstractModelTrackerTests(ModelTrackerTests):
tracked_class = TrackedAbstract