Merge pull request #1443 from CodyReichert/master

MPDStats Plugin: handle update_rating when item is None / start tests for mpdstats
This commit is contained in:
Adrian Sampson 2015-04-29 14:53:01 -07:00
commit 494d32833f
4 changed files with 58 additions and 1 deletions

View file

@ -201,8 +201,12 @@ class MPDStats(object):
displayable_path(item.path))
def update_rating(self, item, skipped):
"""Update the rating for a beets item.
"""Update the rating for a beets item. The `item` can either be a
beets `Item` or None. If the item is None, nothing changes.
"""
if item is None:
return
item.load()
rating = self.rating(
int(item.get('play_count', 0)),

View file

@ -105,6 +105,7 @@ setup(
'responses',
'pyxdg',
'pathlib',
'python-mpd',
],
# Plugin (optional) dependencies:

51
test/test_mpdstats.py Normal file
View file

@ -0,0 +1,51 @@
# This file is part of beets.
# Copyright 2015
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
from __future__ import (division, absolute_import, print_function,
unicode_literals)
from mock import Mock
from test._common import unittest
from test.helper import TestHelper
from beets.library import Item
from beetsplug.mpdstats import MPDStats
class MPDStatsTest(unittest.TestCase, TestHelper):
def setUp(self):
self.setup_beets()
self.load_plugins('mpdstats')
def tearDown(self):
self.teardown_beets()
self.unload_plugins()
def test_update_rating(self):
item = Item(title='title', path='', id=1)
item.add(self.lib)
log = Mock()
mpdstats = MPDStats(self.lib, log)
self.assertFalse(mpdstats.update_rating(item, True))
self.assertFalse(mpdstats.update_rating(None, True))
def suite():
return unittest.TestLoader().loadTestsFromName(__name__)
if __name__ == b'__main__':
unittest.main(defaultTest='suite')

View file

@ -19,6 +19,7 @@ deps =
pathlib
pyxdg
jellyfish
python-mpd
commands =
nosetests {posargs}