def get_html_monthly_cal( day=None, month=None, year=None, calendar_name=None, loc_name=None, busy_days=[]): """ Display a monthly calendar as HTML. :kwarg day: optionnal day (as int). Defaults to current day :kwarg month: optionnal month (as int). Defaults to current month :kwarg year: optionnal year. Defaults to current year. :kwarg calendar_name: the name of the calendar to which the links should point. :kwarg loc_name: the name of the location to which the links should point. """ cur_date = date.today() if not year: year = cur_date.year if not month: month = cur_date.month if not day: day = cur_date.day htmlcal = FedocalCalendar(day=day, year=year, month=month, calendar_name=calendar_name, loc_name=loc_name, busy_days=busy_days) curmonth_cal_nf = htmlcal.formatmonth() return curmonth_cal_nf
def test_formatmonthname(self): """ Test the formatmonthname function. """ today = date.today() cal = FedocalCalendar(today.year, today.month, today.day) self.assertEqual(cal.formatmonthname(2012, 4), '<tr><th colspan="7" class="month"> April 2012 </th></tr>') self.assertEqual(cal.formatmonthname(2012, 4, False), '<tr><th colspan="7" class="month"> April </th></tr>')
def test_formatday(self): """ Test the formatday function. """ today = date.today() cal = FedocalCalendar(2013, 1, 6) self.assertEqual( cal.formatday(6, 1), '<td class="tue">6</td>') self.assertEqual( cal.formatday(7, 3), '<td class="thu">7</td>')
def test_formatmonthname(self): """ Test the formatmonthname function. """ today = date.today() cal = FedocalCalendar(today.year, today.month, today.day) self.assertEqual( cal.formatmonthname(2012, 4), '<tr><th colspan="7" class="month"> April 2012 </th></tr>') self.assertEqual( cal.formatmonthname(2012, 4, False), '<tr><th colspan="7" class="month"> April </th></tr>')
def test_formatmonth(self): """ Test the formatmonth function. """ cal = FedocalCalendar(2012, 1, 10) self.assertEqual(cal.formatmonth(), '<table class="month">\n<tr><th colspan="7" class="month"> '\ 'January 2012 </th></tr>\n<tr><td '\ 'class="noday"> </td><td class="noday"> '\ '</td><td class="noday"> </td><td class="noday">'\ ' </td><td class="noday"> </td><td class="noday">'\ ' </td><td class="sun">1</td></tr>\n<tr><td '\ 'class="mon">2</td><td class="tue">3</td><td class="wed">'\ '4</td><td class="thu">5</td><td class="fri">6</td><td '\ 'class="sat">7</td><td class="sun">8</td></tr>\n<tr '\ 'class="current_week"><td class="mon">9</td><td '\ 'class="tue">10</td><td class="wed">11</td><td '\ 'class="thu">12</td><td class="fri">13</td><td '\ 'class="sat">14</td><td class="sun">15</td></tr>\n<tr><td'\ ' class="mon">16</td><td class="tue">17</td><td '\ 'class="wed">18</td><td class="thu">19</td><td '\ 'class="fri">20</td><td class="sat">21</td><td '\ 'class="sun">22</td></tr>\n<tr><td class="mon">23</td>'\ '<td class="tue">24</td><td class="wed">25</td><td '\ 'class="thu">26</td><td class="fri">27</td><td '\ 'class="sat">28</td><td class="sun">29</td></tr>\n<tr>'\ '<td class="mon">30</td><td class="tue">31</td><td '\ 'class="noday"> </td><td class="noday"> </td>'\ '<td class="noday"> </td><td class="noday"> </td>'\ '<td class="noday"> </td></tr>\n</table>\n') self.assertEqual(cal.formatmonth(False), '<table class="month">\n<tr><th colspan="7" class="month">'\ ' January </th></tr>\n<tr><td '\ 'class="noday"> </td><td class="noday"> '\ '</td><td class="noday"> </td><td class="noday">'\ ' </td><td class="noday"> </td><td class="noday">'\ ' </td><td class="sun">1</td></tr>\n<tr><td '\ 'class="mon">2</td><td class="tue">3</td><td class="wed">'\ '4</td><td class="thu">5</td><td class="fri">6</td><td '\ 'class="sat">7</td><td class="sun">8</td></tr>\n<tr '\ 'class="current_week"><td class="mon">9</td><td '\ 'class="tue">10</td><td class="wed">11</td><td '\ 'class="thu">12</td><td class="fri">13</td><td '\ 'class="sat">14</td><td class="sun">15</td></tr>\n<tr><td'\ ' class="mon">16</td><td class="tue">17</td><td '\ 'class="wed">18</td><td class="thu">19</td><td '\ 'class="fri">20</td><td class="sat">21</td><td '\ 'class="sun">22</td></tr>\n<tr><td class="mon">23</td>'\ '<td class="tue">24</td><td class="wed">25</td><td '\ 'class="thu">26</td><td class="fri">27</td><td '\ 'class="sat">28</td><td class="sun">29</td></tr>\n<tr>'\ '<td class="mon">30</td><td class="tue">31</td><td '\ 'class="noday"> </td><td class="noday"> </td>'\ '<td class="noday"> </td><td class="noday"> </td>'\ '<td class="noday"> </td></tr>\n</table>\n')
def test_formatday(self): """ Test the formatday function. """ today = date.today() cal = FedocalCalendar(today.year, today.month, today.day) self.assertEqual(cal.formatday(6, 1), '<td class="tue">6</td>') self.assertEqual(cal.formatday(7, 3), '<td class="thu">7</td>') self.assertEqual(cal.formatday(today.day, today.isoweekday() - 1), '<td class="%s today">%s</td>' % ( today.strftime('%a').lower(), today.day) )
def test_formatweek(self): """ Test the formatweek function. """ today = TODAY cal = FedocalCalendar(today.year, today.month, today.day) output = cal.formatweek([(1, 1), (2, 2)]).replace(' today', '') self.assertEqual( output, '<tr><td class="tue">1</td><td class="wed">2</td></tr>') self.assertEqual( cal.formatweek([(0, 1), (1, 2)]).replace(' today', ''), '<tr><td class="noday"> </td><td class="wed">1</td></tr>') output = cal.formatweek([(1, 1), (2, 2)], True).replace(' today', '') self.assertEqual( output, '<tr class="current_week"><td class="tue">1</td><td ' 'class="wed">2</td></tr>')
def test_formatweek(self): """ Test the formatweek function. """ today = TODAY cal = FedocalCalendar(today.year, today.month, today.day) output = cal.formatweek([(1, 1), (2, 2)]).replace(' today', '') self.assertEqual( output, '<tr><td class="tue">1</td><td class="wed">2</td></tr>') self.assertEqual( cal.formatweek([(0, 1), (1, 2)]), '<tr><td class="noday"> </td><td class="wed">1</td></tr>') output = cal.formatweek([(1, 1), (2, 2)], True).replace(' today', '') self.assertEqual( output, '<tr class="current_week"><td class="tue">1</td><td '\ 'class="wed">2</td></tr>')
def test_formatmonth(self): """ Test the formatmonth function. """ cal = FedocalCalendar(2012, 1, 10) expcal = [ '<table class="month">', '<tr><th colspan="7" class="month"> January 2012 </th></tr>', '<tr><td class="noday"> </td><td class="noday"> </td>' '<td class="noday"> </td><td class="noday"> </td>' '<td class="noday"> </td><td class="noday"> </td>' '<td class="sun">1</td></tr>', '<tr><td class="mon">2</td><td class="tue">3</td>' '<td class="wed">4</td><td class="thu">5</td>' '<td class="fri">6</td><td class="sat">7</td>' '<td class="sun">8</td></tr>', '<tr class="current_week"><td class="mon">9</td>' '<td class="tue">10</td><td class="wed">11</td>' '<td class="thu">12</td><td class="fri">13</td>' '<td class="sat">14</td><td class="sun">15</td></tr>', '<tr><td class="mon">16</td><td class="tue">17</td>' '<td class="wed">18</td><td class="thu">19</td>' '<td class="fri">20</td><td class="sat">21</td>' '<td class="sun">22</td></tr>', '<tr><td class="mon">23</td><td class="tue">24</td>' '<td class="wed">25</td><td class="thu">26</td>' '<td class="fri">27</td><td class="sat">28</td>' '<td class="sun">29</td></tr>', '<tr><td class="mon">30</td><td class="tue">31</td>' '<td class="noday"> </td><td class="noday"> </td>' '<td class="noday"> </td><td class="noday"> </td>' '<td class="noday"> </td></tr>', '</table>', ''] callines = cal.formatmonth().split('\n') self.assertEqual(len(expcal), len(callines)) for cnt in range(0, len(callines)): self.assertEqual(expcal[cnt], callines[cnt]) expcal = [ '<table class="month">', '<tr><th colspan="7" class="month"> January </th></tr>', '<tr><td class="noday"> </td><td class="noday"> </td>' '<td class="noday"> </td><td class="noday"> </td>' '<td class="noday"> </td><td class="noday"> </td>' '<td class="sun">1</td></tr>', '<tr><td class="mon">2</td><td class="tue">3</td>' '<td class="wed">4</td><td class="thu">5</td>' '<td class="fri">6</td><td class="sat">7</td>' '<td class="sun">8</td></tr>', '<tr class="current_week"><td class="mon">9</td>' '<td class="tue">10</td><td class="wed">11</td>' '<td class="thu">12</td><td class="fri">13</td>' '<td class="sat">14</td><td class="sun">15</td></tr>', '<tr><td class="mon">16</td><td class="tue">17</td>' '<td class="wed">18</td><td class="thu">19</td>' '<td class="fri">20</td><td class="sat">21</td>' '<td class="sun">22</td></tr>', '<tr><td class="mon">23</td><td class="tue">24</td>' '<td class="wed">25</td><td class="thu">26</td>' '<td class="fri">27</td><td class="sat">28</td>' '<td class="sun">29</td></tr>', '<tr><td class="mon">30</td><td class="tue">31</td>' '<td class="noday"> </td><td class="noday"> </td>' '<td class="noday"> </td><td class="noday"> </td>' '<td class="noday"> </td></tr>', '</table>', ''] callines = cal.formatmonth(withyear=False).split('\n') self.assertEqual(len(expcal), len(callines)) for cnt in range(0, len(callines)): self.assertEqual(expcal[cnt], callines[cnt])
def test_formatmonth(self): """ Test the formatmonth function. """ cal = FedocalCalendar(2012, 1, 10) expcal = [ '<table class="month">', '<tr><th colspan="7" class="month"> January 2012 </th></tr>', '<tr><td class="noday"> </td><td class="noday"> </td>' '<td class="noday"> </td><td class="noday"> </td>' '<td class="noday"> </td><td class="noday"> </td>' '<td class="sun">1</td></tr>', '<tr><td class="mon">2</td><td class="tue">3</td>' '<td class="wed">4</td><td class="thu">5</td>' '<td class="fri">6</td><td class="sat">7</td>' '<td class="sun">8</td></tr>', '<tr class="current_week"><td class="mon">9</td>' '<td class="tue">10</td><td class="wed">11</td>' '<td class="thu">12</td><td class="fri">13</td>' '<td class="sat">14</td><td class="sun">15</td></tr>', '<tr><td class="mon">16</td><td class="tue">17</td>' '<td class="wed">18</td><td class="thu">19</td>' '<td class="fri">20</td><td class="sat">21</td>' '<td class="sun">22</td></tr>', '<tr><td class="mon">23</td><td class="tue">24</td>' '<td class="wed">25</td><td class="thu">26</td>' '<td class="fri">27</td><td class="sat">28</td>' '<td class="sun">29</td></tr>', '<tr><td class="mon">30</td><td class="tue">31</td>' '<td class="noday"> </td><td class="noday"> </td>' '<td class="noday"> </td><td class="noday"> </td>' '<td class="noday"> </td></tr>', '</table>', '' ] callines = cal.formatmonth().split('\n') self.assertEqual(len(expcal), len(callines)) for cnt in range(0, len(callines)): self.assertEqual(expcal[cnt], callines[cnt]) expcal = [ '<table class="month">', '<tr><th colspan="7" class="month"> January </th></tr>', '<tr><td class="noday"> </td><td class="noday"> </td>' '<td class="noday"> </td><td class="noday"> </td>' '<td class="noday"> </td><td class="noday"> </td>' '<td class="sun">1</td></tr>', '<tr><td class="mon">2</td><td class="tue">3</td>' '<td class="wed">4</td><td class="thu">5</td>' '<td class="fri">6</td><td class="sat">7</td>' '<td class="sun">8</td></tr>', '<tr class="current_week"><td class="mon">9</td>' '<td class="tue">10</td><td class="wed">11</td>' '<td class="thu">12</td><td class="fri">13</td>' '<td class="sat">14</td><td class="sun">15</td></tr>', '<tr><td class="mon">16</td><td class="tue">17</td>' '<td class="wed">18</td><td class="thu">19</td>' '<td class="fri">20</td><td class="sat">21</td>' '<td class="sun">22</td></tr>', '<tr><td class="mon">23</td><td class="tue">24</td>' '<td class="wed">25</td><td class="thu">26</td>' '<td class="fri">27</td><td class="sat">28</td>' '<td class="sun">29</td></tr>', '<tr><td class="mon">30</td><td class="tue">31</td>' '<td class="noday"> </td><td class="noday"> </td>' '<td class="noday"> </td><td class="noday"> </td>' '<td class="noday"> </td></tr>', '</table>', '' ] callines = cal.formatmonth(withyear=False).split('\n') self.assertEqual(len(expcal), len(callines)) for cnt in range(0, len(callines)): self.assertEqual(expcal[cnt], callines[cnt])
def test_formatday(self): """ Test the formatday function. """ today = date.today() cal = FedocalCalendar(2013, 1, 6) self.assertEqual(cal.formatday(6, 1), '<td class="tue">6</td>') self.assertEqual(cal.formatday(7, 3), '<td class="thu">7</td>')