Skip to content

Commit

Permalink
tests on helper function
Browse files Browse the repository at this point in the history
  • Loading branch information
laevya committed Apr 26, 2018
1 parent 85ce0b3 commit 074a2ef
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 4 deletions.
7 changes: 4 additions & 3 deletions pyoes/utils.py
Expand Up @@ -52,24 +52,25 @@ def fuzzy_date_format_filter(value, format='%d-%m-%Y'):
"""
if value:
try:
return date_converter(value, format)
return _fuzzy_date_formatter(value, format)
except AttributeError:
if value[0:4].find('-') == -1 and value[0:4].find('/') == -1:
date = parser.parse(value, yearfirst=True, dayfirst=False)
else:
date = parser.parse(value, dayfirst=True)
return date_converter(date, format)
return _fuzzy_date_formatter(date, format)
else:
return ''


def date_converter(date, format):
def _fuzzy_date_formatter(date, format='%d-%m-%Y'):
"""
Dateconverter to convert date or datetime objects to strings in a specific format
Implemented because of the problems of datetime.strftime method with years before 1900
:param date:
:param format: The format to print the date in. (must be a predefined format)
'%d-%m-%Y' or '%m-%Y' or '%Y'
:return: The formatted date, eg. `07-09-2014`
"""
if format == '%d-%m-%Y':
Expand Down
32 changes: 31 additions & 1 deletion tests/test_utils.py
Expand Up @@ -4,7 +4,7 @@
from pyoes.utils import (
set_attr_filter,
datetime_format_filter,
fuzzy_date_format_filter)
fuzzy_date_format_filter, _fuzzy_date_formatter)


class TestSetAttr(unittest.TestCase):
Expand Down Expand Up @@ -114,3 +114,33 @@ def test_fuzzy_date_format_filter_slash(self):
def test_fuzzy_date_format_filter_none(self):
fd = fuzzy_date_format_filter(None)
self.assertEqual('', fd)

def test_fuzzy_date_formatter_default(self):
from datetime import datetime
d = datetime(2018, 4, 26, 20, 00)
fd = _fuzzy_date_formatter(d)
self.assertEqual('26-04-2018', fd)

def test_fuzzy_date_formatter_day_month_year(self):
from datetime import datetime
d = datetime(2018, 4, 26, 20, 00)
fd = _fuzzy_date_formatter(d, '%d-%m-%Y')
self.assertEqual('26-04-2018', fd)

def test_fuzzy_date_formatter_month_year(self):
from datetime import datetime
d = datetime(2018, 4, 26, 20, 00)
fd = _fuzzy_date_formatter(d, '%m-%Y')
self.assertEqual('04-2018', fd)

def test_fuzzy_date_formatter_year(self):
from datetime import datetime
d = datetime(2018, 4, 26, 20, 00)
fd = _fuzzy_date_formatter(d, '%Y')
self.assertEqual('2018', fd)

def test_fuzzy_date_formatter_not_defined_formar(self):
from datetime import datetime
d = datetime(2018, 4, 26, 20, 00)
fd = _fuzzy_date_formatter(d, '%Y-%d-%m')
self.assertEqual('26-04-2018', fd)

0 comments on commit 074a2ef

Please sign in to comment.