mirror of
https://github.com/beetbox/beets.git
synced 2025-12-19 23:23:50 +01:00
Item: Do not reset the mtime in __setitem__ unless the value actually changes
Unbreaks the remaining edit plugin tests.
This commit is contained in:
parent
b903b44a0c
commit
c4fb2d1955
2 changed files with 15 additions and 6 deletions
|
|
@ -242,8 +242,9 @@ class Model(object):
|
|||
else:
|
||||
raise KeyError(key)
|
||||
|
||||
def __setitem__(self, key, value):
|
||||
"""Assign the value for a field.
|
||||
def _setitem(self, key, value):
|
||||
"""Assign the value for a field, return whether new and old value
|
||||
differ.
|
||||
"""
|
||||
# Choose where to place the value.
|
||||
if key in self._fields:
|
||||
|
|
@ -257,9 +258,17 @@ class Model(object):
|
|||
# Assign value and possibly mark as dirty.
|
||||
old_value = source.get(key)
|
||||
source[key] = value
|
||||
if self._always_dirty or old_value != value:
|
||||
changed = old_value != value
|
||||
if self._always_dirty or changed:
|
||||
self._dirty.add(key)
|
||||
|
||||
return changed
|
||||
|
||||
def __setitem__(self, key, value):
|
||||
"""Assign the value for a field.
|
||||
"""
|
||||
self._setitem(key, value)
|
||||
|
||||
def __delitem__(self, key):
|
||||
"""Remove a flexible attribute from the model.
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -547,10 +547,10 @@ class Item(LibModel):
|
|||
elif isinstance(value, BLOB_TYPE):
|
||||
value = bytes(value)
|
||||
|
||||
if key in MediaFile.fields():
|
||||
self.mtime = 0 # Reset mtime on dirty.
|
||||
changed = super(Item, self)._setitem(key, value)
|
||||
|
||||
super(Item, self).__setitem__(key, value)
|
||||
if changed and key in MediaFile.fields():
|
||||
self.mtime = 0 # Reset mtime on dirty.
|
||||
|
||||
def update(self, values):
|
||||
"""Set all key/value pairs in the mapping. If mtime is
|
||||
|
|
|
|||
Loading…
Reference in a new issue