Add did you mean tests for settings.
- Checks varying degrees of typos until the edit distance becomes to large. - Also updated did you mean to always uppercase it's input so we catch caps errors.
This commit is contained in:
parent
1f8289a256
commit
e4d425d37a
@ -202,6 +202,7 @@ def did_you_mean(setting, defaults):
|
||||
if not defaults:
|
||||
return None
|
||||
|
||||
setting = setting.upper()
|
||||
candidates = [(levenshtein(setting, d), d) for d in defaults]
|
||||
candidates.sort()
|
||||
|
||||
|
||||
@ -217,3 +217,27 @@ class FormatSettingListTest(unittest.TestCase):
|
||||
self.assert_("""FRONTEND:
|
||||
(u'mopidy.frontends.mpd.MpdFrontend',
|
||||
u'mopidy.frontends.lastfm.LastfmFrontend')""" in result, result)
|
||||
|
||||
|
||||
class DidYouMeanTest(unittest.TestCase):
|
||||
def testSuggestoins(self):
|
||||
defaults = {
|
||||
'MPD_SERVER_HOSTNAME': '::',
|
||||
'MPD_SERVER_PORT': 6600,
|
||||
'SPOTIFY_BITRATE': 160,
|
||||
}
|
||||
|
||||
suggestion = setting_utils.did_you_mean('spotify_bitrate', defaults)
|
||||
self.assertEqual(suggestion, 'SPOTIFY_BITRATE')
|
||||
|
||||
suggestion = setting_utils.did_you_mean('SPOTIFY_BITROTE', defaults)
|
||||
self.assertEqual(suggestion, 'SPOTIFY_BITRATE')
|
||||
|
||||
suggestion = setting_utils.did_you_mean('SPITIFY_BITROT', defaults)
|
||||
self.assertEqual(suggestion, 'SPOTIFY_BITRATE')
|
||||
|
||||
suggestion = setting_utils.did_you_mean('SPTIFY_BITROT', defaults)
|
||||
self.assertEqual(suggestion, 'SPOTIFY_BITRATE')
|
||||
|
||||
suggestion = setting_utils.did_you_mean('SPTIFY_BITRO', defaults)
|
||||
self.assertEqual(suggestion, None)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user