From f67ace610a935250b639cc78f0321a866be02c51 Mon Sep 17 00:00:00 2001 From: Ayberk Yilmaz Date: Wed, 16 Apr 2014 23:16:04 +0300 Subject: [PATCH 1/3] Fixed #453 and added test cases --- beets/library.py | 2 ++ test/test_library.py | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/beets/library.py b/beets/library.py index 95dffee70..f46790020 100644 --- a/beets/library.py +++ b/beets/library.py @@ -1123,6 +1123,8 @@ class DefaultTemplateFunctions(object): try: condition = _int_arg(condition) except ValueError: + if condition.lower() == "false": + return falseval condition = condition.strip() if condition: return trueval diff --git a/test/test_library.py b/test/test_library.py index a39e5ce30..eea513454 100644 --- a/test/test_library.py +++ b/test/test_library.py @@ -496,6 +496,10 @@ class DestinationFunctionTest(_common.TestCase, PathFormattingMixin): self._setf(u'x%if{,foo}') self._assert_dest('/base/x') + def test_if_false_value(self): + self._setf(u'x%if{false,foo}') + self._assert_dest('/base/x') + def test_if_true(self): self._setf(u'%if{bar,foo}') self._assert_dest('/base/foo') @@ -504,6 +508,10 @@ class DestinationFunctionTest(_common.TestCase, PathFormattingMixin): self._setf(u'%if{,foo,baz}') self._assert_dest('/base/baz') + def test_if_else_false_value(self): + self._setf(u'%if{false,foo,baz}') + self._assert_dest('/base/baz') + def test_if_int_value(self): self._setf(u'%if{0,foo,baz}') self._assert_dest('/base/baz') From 7e01a27124f236f8625dfc19085101f16d53dd0b Mon Sep 17 00:00:00 2001 From: Ayberk Yilmaz Date: Sat, 19 Apr 2014 00:07:17 +0300 Subject: [PATCH 2/3] Minor adjustments based on feedback --- beets/library.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/beets/library.py b/beets/library.py index f46790020..f7cb88365 100644 --- a/beets/library.py +++ b/beets/library.py @@ -25,7 +25,7 @@ from unidecode import unidecode from beets.mediafile import MediaFile, MutagenError from beets import plugins from beets import util -from beets.util import bytestring_path, syspath, normpath, samefile +from beets.util import bytestring_path, syspath, normpath, samefile, str2bool from beets.util.functemplate import Template from beets import dbcore from beets.dbcore import types @@ -1121,11 +1121,13 @@ class DefaultTemplateFunctions(object): otherwise, emit ``falseval`` (if provided). """ try: - condition = _int_arg(condition) + int_condition = _int_arg(condition) except ValueError: if condition.lower() == "false": return falseval - condition = condition.strip() + else: + condition = int_condition + if condition: return trueval else: From 746befabaced25dc13e5fbfcc7a651ca0efb2c4d Mon Sep 17 00:00:00 2001 From: Ayberk Yilmaz Date: Sat, 19 Apr 2014 00:08:31 +0300 Subject: [PATCH 3/3] Removed str2bool import --- beets/library.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/beets/library.py b/beets/library.py index f7cb88365..bb10f7392 100644 --- a/beets/library.py +++ b/beets/library.py @@ -25,7 +25,7 @@ from unidecode import unidecode from beets.mediafile import MediaFile, MutagenError from beets import plugins from beets import util -from beets.util import bytestring_path, syspath, normpath, samefile, str2bool +from beets.util import bytestring_path, syspath, normpath, samefile from beets.util.functemplate import Template from beets import dbcore from beets.dbcore import types