Skip to content

Commit 8a81fe6

Browse files
committed
Fixed #326
* fixed the has_content function * added test code Signed-off-by: Chin Yeung Li <[email protected]>
1 parent eea7070 commit 8a81fe6

File tree

3 files changed

+19
-8
lines changed

3 files changed

+19
-8
lines changed

src/attributecode/model.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -542,7 +542,7 @@ class BooleanField(SingleLineField):
542542
def default_value(self):
543543
return None
544544

545-
flags = {'yes': True, 'y': True, 'no': False, 'n': False, }
545+
flags = {'yes': True, 'y': True, 'no': False, 'n': False, 'true' : True, 'false': False, }
546546

547547
flag_values = ', '.join(flags)
548548

@@ -552,7 +552,6 @@ def _validate(self, *args, **kwargs):
552552
False. Return a list of errors.
553553
"""
554554
errors = super(BooleanField, self)._validate(*args, ** kwargs)
555-
556555
flag = self.get_flag(self.original_value)
557556
if flag is False:
558557
name = self.name
@@ -575,7 +574,8 @@ def _validate(self, *args, **kwargs):
575574
def get_flag(self, value):
576575
"""
577576
Return a normalized existing flag value if found in the list of
578-
possible values or None if empty or False if not found.
577+
possible values or None if empty or False if not found or original value
578+
if it is not a boolean value
579579
"""
580580
if value is None or value == '':
581581
return None
@@ -599,12 +599,12 @@ def get_flag(self, value):
599599

600600
@property
601601
def has_content(self):
602-
# Special for flags: None means False AND content not defined
603-
flag = self.get_flag(self.original_value)
604-
if flag:
602+
"""
603+
Return true if it has content regardless of what value, False otherwise
604+
"""
605+
if self.original_value:
605606
return True
606-
else:
607-
return flag
607+
return False
608608

609609
def _serialized_value(self):
610610
# default normalized values for serialization

tests/test_model.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -564,6 +564,14 @@ def test_About_rejects_non_ascii_names_and_accepts_unicode_values(self):
564564
Error(INFO, u'Field Mat\xedas is not a supported field and is ignored.')]
565565
assert expected == result
566566

567+
def test_About_invalid_boolean_value(self):
568+
test_file = get_test_loc('parse/invalid_boolean.about')
569+
a = model.About(test_file)
570+
result = a.errors
571+
expected = [
572+
Error(ERROR, "Field modified: Invalid flag value: 'blah' is not one of: false, no, n, y, yes, true")]
573+
assert expected == result
574+
567575
def test_About_contains_about_file_path(self):
568576
test_file = get_test_loc('parse/complete/about.ABOUT')
569577
a = model.About(test_file, about_file_path='complete/about.ABOUT')
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
name: invalid_boolean
2+
about_resource: .
3+
modified: blah

0 commit comments

Comments
 (0)