Repository :
http://git.fedorahosted.org/cgit/fedocal.git
On branch : master
---------------------------------------------------------------
commit b4959caf3e10d879ee628534adf382d308c2ed2c
Author: Johan Cwiklinski <johan(a)x-tnd.be>
Date: Sun Nov 4 13:27:05 2012 +0100
Get monthly calendar for specific year/month, test with full output
---------------------------------------------------------------
fedocal/fedocallib/__init__.py | 18 +++++++++++++++---
fedocal/tests/test_fedocallib.py | 19 +++++++++++++------
2 files changed, 28 insertions(+), 9 deletions(-)
diff --git a/fedocal/fedocallib/__init__.py b/fedocal/fedocallib/__init__.py
index 3f1080e..c8d6ff0 100644
--- a/fedocal/fedocallib/__init__.py
+++ b/fedocal/fedocallib/__init__.py
@@ -514,8 +514,20 @@ def add_meetings_to_vcal(ical, meetings):
for meeting in meetings:
add_meeting_to_vcal(ical, meeting)
-def get_html_monthly_cal():
+def get_html_monthly_cal(month = None, year = None):
+ """ Display a monthly calendar as HTML.
+
+ :arg month: optionnal month. Defaults to current month
+ :arg year: optionnal year. Defaults to current year.
+ """
+ if year is None or month is None:
+ curdate = date.today()
+ if year is None:
+ year = curdate.year
+
+ if month is None:
+ month = curdate.month
+
htmlcal = pycalendar.HTMLCalendar()
- curdate = date.today()
- curmonth_cal_nf = htmlcal.formatmonth(curdate.year, curdate.month)
+ curmonth_cal_nf = htmlcal.formatmonth(year, month)
return curmonth_cal_nf
diff --git a/fedocal/tests/test_fedocallib.py b/fedocal/tests/test_fedocallib.py
index 27e4655..a55c7c3 100644
--- a/fedocal/tests/test_fedocallib.py
+++ b/fedocal/tests/test_fedocallib.py
@@ -48,6 +48,17 @@ import fedocallib
from fedocallib import model
from tests import Modeltests
+result_201211_html = """
+<table border="0" cellpadding="0" cellspacing="0"
class="month">
+<tr><th colspan="7" class="month">November
2012</th></tr>
+<tr><th class="mon">Mon</th><th
class="tue">Tue</th><th
class="wed">Wed</th><th
class="thu">Thu</th><th
class="fri">Fri</th><th
class="sat">Sat</th><th
class="sun">Sun</th></tr>
+<tr><td class="noday"> </td><td
class="noday"> </td><td
class="noday"> </td><td
class="thu">1</td><td class="fri">2</td><td
class="sat">3</td><td
class="sun">4</td></tr>
+<tr><td class="mon">5</td><td
class="tue">6</td><td class="wed">7</td><td
class="thu">8</td><td class="fri">9</td><td
class="sat">10</td><td
class="sun">11</td></tr>
+<tr><td class="mon">12</td><td
class="tue">13</td><td class="wed">14</td><td
class="thu">15</td><td class="fri">16</td><td
class="sat">17</td><td
class="sun">18</td></tr>
+<tr><td class="mon">19</td><td
class="tue">20</td><td class="wed">21</td><td
class="thu">22</td><td class="fri">23</td><td
class="sat">24</td><td
class="sun">25</td></tr>
+<tr><td class="mon">26</td><td
class="tue">27</td><td class="wed">28</td><td
class="thu">29</td><td class="fri">30</td><td
class="noday"> </td><td
class="noday"> </td></tr>
+</table>
+"""
class FakeUser(object):
""" Fake user used to test the fedocallib library. """
@@ -698,12 +709,8 @@ class Fedocallibtests(Modeltests):
def test_get_html_monthly_cal(self):
""" Test the get_html_monthly_call function. """
- output = fedocallib.get_html_monthly_cal()
- self.assertTrue(output.startswith('<table border="0" '\
- 'cellpadding="0" cellspacing="0"
class="month">\n<tr><th '\
- 'colspan="7" class="month">'))
- self.assertTrue(output.endswith('<td
class="noday"> </td>'\
- '<td
class="noday"> </td></tr>\n</table>\n'))
+ output = fedocallib.get_html_monthly_cal(11, 2012)
+ self.assertEqual(output.strip(), result_201211_html.strip())
if __name__ == '__main__':