diff --git a/beets/dbcore/query.py b/beets/dbcore/query.py index 5835ddc32..db4b861c4 100644 --- a/beets/dbcore/query.py +++ b/beets/dbcore/query.py @@ -159,10 +159,6 @@ class NoneQuery(FieldQuery): def match(self, item): return item.get(self.field, default=None) is None - @classmethod - def value_match(cls, pattern, value): - return pattern == value - def __repr__(self): return "{0.__class__.__name__}({0.field!r}, {0.fast})".format(self) diff --git a/test/test_query.py b/test/test_query.py index c0ab2a171..5e1556a45 100644 --- a/test/test_query.py +++ b/test/test_query.py @@ -772,6 +772,25 @@ class NoneQueryTest(unittest.TestCase, TestHelper): matched = self.lib.items(NoneQuery(u'rg_track_gain')) self.assertInResult(item, matched) + def test_match_slow(self): + item = self.add_item() + matched = self.lib.items(NoneQuery(u'rg_track_peak', fast=False)) + self.assertInResult(item, matched) + + def test_match_slow_after_set_none(self): + item = self.add_item(rg_track_gain=0) + matched = self.lib.items(NoneQuery(u'rg_track_gain', fast=False)) + self.assertNotInResult(item, matched) + + item['rg_track_gain'] = None + item.store() + matched = self.lib.items(NoneQuery(u'rg_track_gain', fast=False)) + self.assertInResult(item, matched) + + def test_match_repr(self): + q = NoneQuery(u'rg_track_gain', fast=False) + self.assertEquals("NoneQuery('rg_track_gain', False)", str(q)) + class NotQueryMatchTest(_common.TestCase): """Test `query.NotQuery` matching against a single item, using the same