[fedocal] master: Move the session on a global variable (6ad6f9d)
by Pierre-YvesChibon
Repository : http://git.fedorahosted.org/cgit/fedocal.git
On branch : master
>---------------------------------------------------------------
commit 6ad6f9d2807cb885bcf6aad922a080a494094149
Author: Pierre-Yves Chibon <pingou(a)pingoured.fr>
Date: Mon Nov 5 20:07:24 2012 +0100
Move the session on a global variable
>---------------------------------------------------------------
fedocal/__init__.py | 96 ++++++++++++++++++++++-----------------------------
1 files changed, 41 insertions(+), 55 deletions(-)
diff --git a/fedocal/__init__.py b/fedocal/__init__.py
index f281ea7..039a88a 100644
--- a/fedocal/__init__.py
+++ b/fedocal/__init__.py
@@ -55,11 +55,11 @@ APP = flask.Flask(__name__)
# set up FAS
FAS = FAS(APP)
APP.secret_key = CONFIG.get('fedocal', 'secret_key')
+SESSION = fedocallib.create_session(CONFIG.get('fedocal', 'db_url'))
@APP.context_processor
def inject_calendars():
- session = fedocallib.create_session(CONFIG.get('fedocal', 'db_url'))
- calendars = Calendar.get_all(session)
+ calendars = Calendar.get_all(SESSION)
return dict(calendars=calendars)
@@ -78,8 +78,7 @@ def index():
""" Displays the index page with containing the first calendar (by
order of creation and if any) for the current week.
"""
- session = fedocallib.create_session(CONFIG.get('fedocal', 'db_url'))
- calendars = Calendar.get_all(session)
+ calendars = Calendar.get_all(SESSION)
if calendars:
return calendar(calendars[0].calendar_name)
else:
@@ -112,11 +111,10 @@ def calendar_fullday(calendar_name, year, month, day):
:arg month: the month of the date one would like to consult.
:arg day: the day of the date one would like to consult.
"""
- session = fedocallib.create_session(CONFIG.get('fedocal', 'db_url'))
- calendarobj = Calendar.by_id(session, calendar_name)
+ calendarobj = Calendar.by_id(SESSION, calendar_name)
week_start = fedocallib.get_start_week(year, month, day)
weekdays = fedocallib.get_week_days(year, month, day)
- meetings = fedocallib.get_meetings(session, calendarobj, year,
+ meetings = fedocallib.get_meetings(SESSION, calendarobj, year,
month, day)
next_week = fedocallib.get_next_week(week_start.year,
week_start.month, week_start.day)
@@ -148,8 +146,7 @@ def ical_out(calendar_name):
"""
startd = datetime.date.today() - datetime.timedelta(days=30)
endd = datetime.date.today() + datetime.timedelta(days=180)
- session = fedocallib.create_session(CONFIG.get('fedocal', 'db_url'))
- meetings = fedocallib.get_meetings_by_date(session, calendar_name,
+ meetings = fedocallib.get_meetings_by_date(SESSION, calendar_name,
startd, endd)
ical = vobject.iCalendar()
fedocallib.add_meetings_to_vcal(ical, meetings)
@@ -164,12 +161,11 @@ def my_meetings():
involved, either because you created them or because someone gave
you manager rights to the meeting.
"""
- session = fedocallib.create_session(CONFIG.get('fedocal', 'db_url'))
- regular_meetings = fedocallib.get_future_regular_meeting_of_user(session,
+ regular_meetings = fedocallib.get_future_regular_meeting_of_user(SESSION,
flask.g.fas_user.username)
- single_meetings = fedocallib.get_future_single_meeting_of_user(session,
+ single_meetings = fedocallib.get_future_single_meeting_of_user(SESSION,
flask.g.fas_user.username)
- past_meetings = fedocallib.get_past_meeting_of_user(session,
+ past_meetings = fedocallib.get_past_meeting_of_user(SESSION,
flask.g.fas_user.username)
admin = is_admin()
return flask.render_template('my_meeting.html',
@@ -214,8 +210,6 @@ def add_calendar():
return flask.redirect(flask.url_for('index'))
form = forms.AddCalendarForm()
if form.validate_on_submit():
- session = fedocallib.create_session(
- CONFIG.get('fedocal', 'db_url'))
calendarobj = Calendar(
form.calendar_name.data,
form.calendar_description.data,
@@ -224,8 +218,8 @@ def add_calendar():
bool(form.calendar_regional_meetings.data),
)
try:
- calendarobj.save(session)
- session.commit()
+ calendarobj.save(SESSION)
+ SESSION.commit()
except Exception, err:
print err
flask.flash('Could not add this calendar to the database')
@@ -249,16 +243,15 @@ def add_meeting(calendar_name):
if not flask.g.fas_user:
return flask.redirect(flask.url_for('index'))
form = forms.AddMeetingForm()
- session = fedocallib.create_session(CONFIG.get('fedocal', 'db_url'))
- calendarobj = Calendar.by_id(session, calendar_name)
+ calendarobj = Calendar.by_id(SESSION, calendar_name)
if form.validate_on_submit():
- print fedocallib.agenda_is_free(session,
+ print fedocallib.agenda_is_free(SESSION,
calendarobj,
form.meeting_date.data,
int(form.meeting_time_start.data),
int(form.meeting_time_stop.data)
)
- if not fedocallib.is_user_managing_in_calendar(session,
+ if not fedocallib.is_user_managing_in_calendar(SESSION,
calendarobj.calendar_name, flask.g.fas_user):
flask.flash('You are not allowed to add a meeting to'\
' this calendar')
@@ -276,7 +269,7 @@ def add_meeting(calendar_name):
calendar=calendarobj, form=form)
elif bool(calendarobj.calendar_multiple_meetings) or \
(not bool(calendarobj.calendar_multiple_meetings) and \
- fedocallib.agenda_is_free(session,
+ fedocallib.agenda_is_free(SESSION,
calendarobj,
form.meeting_date.data,
int(form.meeting_time_start.data),
@@ -307,9 +300,9 @@ def add_meeting(calendar_name):
meeting_region=region,
recursion_frequency=frequency,
recursion_ends=end_date)
- meeting.save(session)
+ meeting.save(SESSION)
try:
- session.flush()
+ SESSION.flush()
except Exception, err:
print 'add_meeting:', err
flask.flash('Could not add this meeting to this calendar')
@@ -320,11 +313,11 @@ def add_meeting(calendar_name):
reminder = Reminder(form.remind_when.data,
form.remind_who.data,
None)
- reminder.save(session)
+ reminder.save(SESSION)
try:
- session.flush()
+ SESSION.flush()
meeting.reminder = reminder
- session.flush()
+ SESSION.flush()
except Exception, err:
print 'add_meeting:', err
flask.flash('Could not add this reminder to this meeting')
@@ -332,7 +325,7 @@ def add_meeting(calendar_name):
calendar=calendarobj, form=form)
try:
- session.commit()
+ SESSION.commit()
except Exception, err:
flask.flash(
'Something went wrong while commiting to the DB.')
@@ -361,14 +354,13 @@ def edit_meeting(meeting_id):
"""
if not flask.g.fas_user:
return flask.redirect(flask.url_for('index'))
- session = fedocallib.create_session(CONFIG.get('fedocal', 'db_url'))
if not flask.g.fas_user.username in \
- Meeting.get_managers(session, meeting_id):
+ Meeting.get_managers(SESSION, meeting_id):
flask.flash('You are not one of the manager of this meeting, '\
'you are not allowed to edit it.')
return flask.redirect(flask.url_for('index'))
- meeting = Meeting.by_id(session, meeting_id)
- calendarobj = Calendar.by_id(session, meeting.calendar_name)
+ meeting = Meeting.by_id(SESSION, meeting_id)
+ calendarobj = Calendar.by_id(SESSION, meeting.calendar_name)
if not fedocallib.is_date_in_future(meeting.meeting_date,
meeting.meeting_time_start.hour):
flask.flash('This meeting has already occured, you may not '\
@@ -406,16 +398,16 @@ def edit_meeting(meeting_id):
if meeting.reminder_id:
meeting.reminder.reminder_offset = form.remind_when.data
meeting.reminder.reminder_to = form.remind_who.data
- meeting.reminder.save(session)
+ meeting.reminder.save(SESSION)
else:
reminder = Reminder(form.remind_when.data,
form.remind_who.data,
None)
- reminder.save(session)
+ reminder.save(SESSION)
try:
- session.flush()
+ SESSION.flush()
meeting.reminder = reminder
- session.flush()
+ SESSION.flush()
except Exception, err:
print 'edit_meeting:', err
flask.flash('Could not edit the reminder of '\
@@ -425,12 +417,12 @@ def edit_meeting(meeting_id):
form=form)
elif meeting.reminder_id:
try:
- meeting.reminder.delete(session)
+ meeting.reminder.delete(SESSION)
except Exception, err:
print 'edit_meeting:', err
- meeting.save(session)
- session.commit()
+ meeting.save(SESSION)
+ SESSION.commit()
except Exception, err:
print 'edit_meeting:', err
flask.flash('Could not update this meeting.')
@@ -460,8 +452,7 @@ def view_meeting_page(meeting_id, full):
:arg meeting_id: the identifier of the meeting to visualize.
"""
- session = fedocallib.create_session(CONFIG.get('fedocal', 'db_url'))
- meeting = Meeting.by_id(session, meeting_id)
+ meeting = Meeting.by_id(SESSION, meeting_id)
if not meeting:
flask.flash('No meeting could be found for this identifier')
return flask.redirect(flask.url_for('index'))
@@ -480,18 +471,17 @@ def delete_meeting(meeting_id):
"""
if not flask.g.fas_user:
return flask.redirect(flask.url_for('index'))
- session = fedocallib.create_session(CONFIG.get('fedocal', 'db_url'))
- meeting = Meeting.by_id(session, meeting_id)
- calendars = Calendar.get_all(session)
+ meeting = Meeting.by_id(SESSION, meeting_id)
+ calendars = Calendar.get_all(SESSION)
deleteform = forms.DeleteMeetingForm()
if deleteform.validate_on_submit():
if deleteform.confirm_delete.data:
if deleteform.confirm_futher_delete.data:
- fedocallib.delete_recursive_meeting(session, meeting)
+ fedocallib.delete_recursive_meeting(SESSION, meeting)
else:
- meeting.delete(session)
+ meeting.delete(SESSION)
try:
- session.commit()
+ SESSION.commit()
except Exception, err:
print 'edit_meeting:', err
flask.flash('Could not update this meeting.')
@@ -527,8 +517,7 @@ def api_date_default(calendar_name):
"""
startd = datetime.date.today() - datetime.timedelta(days=30)
endd = datetime.date.today() + datetime.timedelta(days=180)
- session = fedocallib.create_session(CONFIG.get('fedocal', 'db_url'))
- meetings = fedocallib.get_meetings_by_date(session, calendar_name,
+ meetings = fedocallib.get_meetings_by_date(SESSION, calendar_name,
startd, endd)
if not meetings:
output = '{ "retrieval": "notok", "meeting": []}'
@@ -573,8 +562,7 @@ def api_date(calendar_name, start_date, end_date):
'"Date format invalid: %s"}' % error
return flask.Response(output)
- session = fedocallib.create_session(CONFIG.get('fedocal', 'db_url'))
- meetings = fedocallib.get_meetings_by_date(session, calendar_name,
+ meetings = fedocallib.get_meetings_by_date(SESSION, calendar_name,
startd, endd)
if not meetings:
output = '{ "retrieval": "notok", "meeting": []}'
@@ -603,8 +591,7 @@ def api_place_default(region, calendar_name):
"""
startd = datetime.date.today() - datetime.timedelta(days=30)
endd = datetime.date.today() + datetime.timedelta(days=180)
- session = fedocallib.create_session(CONFIG.get('fedocal', 'db_url'))
- meetings = fedocallib.get_meetings_by_date_and_region(session,
+ meetings = fedocallib.get_meetings_by_date_and_region(SESSION,
calendar_name, startd, endd, region)
if not meetings:
output = '{ "retrieval": "notok", "meeting": []}'
@@ -651,8 +638,7 @@ def api_place(region, calendar_name, start_date, end_date):
'"Date format invalid: %s"}' % error
return flask.Response(output)
- session = fedocallib.create_session(CONFIG.get('fedocal', 'db_url'))
- meetings = fedocallib.get_meetings_by_date_and_region(session,
+ meetings = fedocallib.get_meetings_by_date_and_region(SESSION,
calendar_name, startd, endd, region)
if not meetings:
output = '{ "retrieval": "notok", "meeting": []}'
10 years, 7 months
[fedocal] master: Style homepage ling as other menu entries (0bf4790)
by Johan Cwiklinski
Repository : http://git.fedorahosted.org/cgit/fedocal.git
On branch : master
>---------------------------------------------------------------
commit 0bf47905b5796fb99e27ab62afccd4a89f48976b
Author: Johan Cwiklinski <johan(a)x-tnd.be>
Date: Mon Nov 5 19:58:22 2012 +0100
Style homepage ling as other menu entries
>---------------------------------------------------------------
fedocal/static/calendar-small.png | Bin 0 -> 1040 bytes
fedocal/static/fedocal.css | 30 ++++++++++++++++++++++++++++++
fedocal/templates/master.html | 6 +++---
3 files changed, 33 insertions(+), 3 deletions(-)
diff --git a/fedocal/static/calendar-small.png b/fedocal/static/calendar-small.png
new file mode 100644
index 0000000..53abbca
Binary files /dev/null and b/fedocal/static/calendar-small.png differ
diff --git a/fedocal/static/fedocal.css b/fedocal/static/fedocal.css
index 7754360..d0d40ad 100644
--- a/fedocal/static/fedocal.css
+++ b/fedocal/static/fedocal.css
@@ -185,3 +185,33 @@ section nav {
.ui-menu-item {
white-space: nowrap;
}
+
+#home {
+ cursor: pointer;
+ position: relative;
+ margin-top: 2px;
+ padding: .5em .5em .5em 2.2em;
+ border: 1px solid #dddddd;
+ background-color: #fff;
+ background-image: url("calendar-small.png"), url(fedocal/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png);
+ background-position: .5em 50%, 50% 50%;
+ background-repeat: no-repeat, repeat-x;
+ color: #3C6EB4;
+ font-size: 1.1em;
+ font-family: Helvetica,Arial,sans-serif;
+}
+
+#home:hover {
+ border: 1px solid #3c6eb4;
+ background-color: #3c6eb4;
+ background-image: url("calendar-small.png"), url(fedocal/images/ui-bg_highlight-soft_25_3c6eb4_1x100.png);
+ color: #fff;
+}
+
+#home a {
+ color: #3C6EB4;
+}
+
+#home:hover a {
+ color: #fff;
+}
diff --git a/fedocal/templates/master.html b/fedocal/templates/master.html
index ed2d9fb..895d7cb 100644
--- a/fedocal/templates/master.html
+++ b/fedocal/templates/master.html
@@ -37,9 +37,9 @@
<aside id="mainmenu">
{% autoescape off%}{{ curmonth_cal }}{% endautoescape %}
- <ul class="checkmark-list">
- <li><a href="{{url_for('index')}}">Home</a></li>
- </ul>
+ <h4 id="home" class="ui-corner-all ui-helper-reset">
+ <a href="{{url_for('index')}}">Home</a>
+ </h4>
<div id="accordion">
<h4>Calendars</h4>
<ul id="calendars_menu" class="checkmark-list">
10 years, 7 months
[fedocal] master: Fix a display issue in event popup (d651c4f)
by Johan Cwiklinski
Repository : http://git.fedorahosted.org/cgit/fedocal.git
On branch : master
>---------------------------------------------------------------
commit d651c4fbf119920fcdcdb937a9039aec0008f8dd
Author: Johan Cwiklinski <johan(a)x-tnd.be>
Date: Mon Nov 5 19:48:48 2012 +0100
Fix a display issue in event popup
>---------------------------------------------------------------
fedocal/static/fedocal.css | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/fedocal/static/fedocal.css b/fedocal/static/fedocal.css
index 7aa518a..7754360 100644
--- a/fedocal/static/fedocal.css
+++ b/fedocal/static/fedocal.css
@@ -74,7 +74,7 @@ section nav {
vertical-align: middle;
}
-section > header {
+#content section > header {
margin-left: -200px; /* Left align with menu */
margin-bottom: .5em;
}
10 years, 7 months
[fedocal] master: Make the Flask API tests to TODAY variable as well (34ec9de)
by Pierre-YvesChibon
Repository : http://git.fedorahosted.org/cgit/fedocal.git
On branch : master
>---------------------------------------------------------------
commit 34ec9de7ac5593e280cd3dedf7882752fd665419
Author: Pierre-Yves Chibon <pingou(a)pingoured.fr>
Date: Mon Nov 5 18:59:34 2012 +0100
Make the Flask API tests to TODAY variable as well
>---------------------------------------------------------------
fedocal/tests/test_flask_api.py | 34 ++++++++++++++++------------------
1 files changed, 16 insertions(+), 18 deletions(-)
diff --git a/fedocal/tests/test_flask_api.py b/fedocal/tests/test_flask_api.py
index e6514dc..26129da 100644
--- a/fedocal/tests/test_flask_api.py
+++ b/fedocal/tests/test_flask_api.py
@@ -44,7 +44,7 @@ sys.path.insert(0, os.path.join(os.path.dirname(
import fedocal
import fedocal.fedocallib as fedocallib
-from fedocal.tests import Modeltests, DB_PATH
+from fedocal.tests import Modeltests, DB_PATH, TODAY
from test_fedocallib import FakeUser
@@ -109,19 +109,18 @@ class FlaskApitests(Modeltests):
def test_api_date(self):
""" Test the api_date function. """
- today = date.today()
- end_date = today + timedelta(days=11)
- rv = self.app.get('/api/date/foobar/%s/%s' %(today, end_date))
+ end_date = TODAY + timedelta(days=11)
+ rv = self.app.get('/api/date/foobar/%s/%s' %(TODAY, end_date))
self.assertEqual(rv.status_code, 301)
- rv = self.app.get('/api/date/foobar/%s/%s/' %(today, end_date))
+ rv = self.app.get('/api/date/foobar/%s/%s/' %(TODAY, end_date))
self.assertEqual(rv.status_code, 200)
self.assertEqual(rv.data,
'{ "retrieval": "notok", "meeting": []}')
self.__setup_db()
- rv = self.app.get('/api/date/test_calendar/%s/%s/' %(today,
+ rv = self.app.get('/api/date/test_calendar/%s/%s/' %(TODAY,
end_date))
self.assertEqual(rv.status_code, 200)
self.assertTrue('"retrieval": "ok"' in rv.data)
@@ -131,8 +130,8 @@ class FlaskApitests(Modeltests):
rv.data)
self.assertEqual(rv.data.count('meeting_name'), 4)
- end_date = today + timedelta(days=2)
- rv = self.app.get('/api/date/test_calendar4/%s/%s/' %(today,
+ end_date = TODAY + timedelta(days=2)
+ rv = self.app.get('/api/date/test_calendar4/%s/%s/' %(TODAY,
end_date))
self.assertEqual(rv.status_code, 200)
self.assertTrue('"retrieval": "ok"' in rv.data)
@@ -167,13 +166,12 @@ class FlaskApitests(Modeltests):
def test_api_place(self):
""" Test the api_place function. """
- today = date.today()
- end_date = today + timedelta(days=2)
- rv = self.app.get('/api/place/EMEA/foobar/%s/%s' %(today,
+ end_date = TODAY + timedelta(days=2)
+ rv = self.app.get('/api/place/EMEA/foobar/%s/%s' %(TODAY,
end_date))
self.assertEqual(rv.status_code, 301)
- rv = self.app.get('/api/place/EMEA/foobar/%s/%s/' %(today,
+ rv = self.app.get('/api/place/EMEA/foobar/%s/%s/' %(TODAY,
end_date))
self.assertEqual(rv.status_code, 200)
self.assertEqual(rv.data,
@@ -182,33 +180,33 @@ class FlaskApitests(Modeltests):
self.__setup_db()
rv = self.app.get('/api/place/APAC/test_calendar4/%s/%s/' %(
- today, end_date))
+ TODAY, end_date))
self.assertEqual(rv.status_code, 200)
self.assertEqual(rv.data,
'{ "retrieval": "notok", "meeting": []}')
rv = self.app.get('/api/place/NA/test_calendar4/%s/%s/' %(
- today, end_date))
+ TODAY, end_date))
self.assertEqual(rv.status_code, 200)
self.assertTrue('"retrieval": "ok"' in rv.data)
self.assertEqual(rv.data.count('meeting_name'), 1)
rv = self.app.get('/api/place/EMEA/test_calendar4/%s/%s/' %(
- today, end_date))
+ TODAY, end_date))
self.assertEqual(rv.status_code, 200)
self.assertTrue('"retrieval": "ok"' in rv.data)
self.assertEqual(rv.data.count('meeting_name'), 1)
- end_date = today + timedelta(days=1)
+ end_date = TODAY + timedelta(days=1)
rv = self.app.get('/api/place/NA/test_calendar4/%s/%s/' %(
- today, end_date))
+ TODAY, end_date))
self.assertEqual(rv.status_code, 200)
self.assertEqual(rv.data,
'{ "retrieval": "notok", "meeting": []}')
rv = self.app.get('/api/place/EMEA/test_calendar4/%s/%s/' %(
- today, end_date))
+ TODAY, end_date))
self.assertEqual(rv.status_code, 200)
self.assertEqual(rv.data,
'{ "retrieval": "notok", "meeting": []}')
10 years, 7 months
[fedocal] master: Move the calendar icon to have it in front of the calendar name (0e66e1a)
by pingou@fedorahosted.org
Repository : http://git.fedorahosted.org/cgit/fedocal.git
On branch : master
>---------------------------------------------------------------
commit 0e66e1ad841501db83a9eef0a6b03d20be74bc51
Author: Pierre-Yves Chibon <pingou(a)pingoured.fr>
Date: Mon Nov 5 18:55:00 2012 +0100
Move the calendar icon to have it in front of the calendar name
>---------------------------------------------------------------
fedocal/templates/agenda.html | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/fedocal/templates/agenda.html b/fedocal/templates/agenda.html
index 23daaf2..60b1bac 100644
--- a/fedocal/templates/agenda.html
+++ b/fedocal/templates/agenda.html
@@ -9,13 +9,13 @@
{% if calendar %}
<header>
<h2>
- {{ calendar.calendar_name }}
<a href="{{url_for('ical_out',
calendar_name=calendar.calendar_name)}}">
<img src="{{url_for('static', filename='calendar.png')}}"
alt="iCal feed"
title="Add this calendar to your agenda"/>
</a>
+ {{ calendar.calendar_name }}
</h2>
<p>{{ calendar.calendar_description }}</p>
</header>
10 years, 7 months
[fedocal] master: Add a title to the iCal link in the menu (f8d652d)
by pingou@fedorahosted.org
Repository : http://git.fedorahosted.org/cgit/fedocal.git
On branch : master
>---------------------------------------------------------------
commit f8d652da801217ab82f73c7c5e28871aa2c95a13
Author: Pierre-Yves Chibon <pingou(a)pingoured.fr>
Date: Mon Nov 5 18:54:36 2012 +0100
Add a title to the iCal link in the menu
>---------------------------------------------------------------
fedocal/templates/master.html | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/fedocal/templates/master.html b/fedocal/templates/master.html
index 425cb3a..ed2d9fb 100644
--- a/fedocal/templates/master.html
+++ b/fedocal/templates/master.html
@@ -58,7 +58,8 @@
{% endif %}
<li>
<a href="{{url_for('ical_out',
- calendar_name=calendar.calendar_name)}}">iCal export</a>
+ calendar_name=calendar.calendar_name)}}"
+ title="Add this calendar to your agenda">iCal export</a>
</li>
<li>
<a href="#">Contact admin</a>
10 years, 7 months
[fedocal] master: Move the definition of TODAY to the __init__ of the tests (f143df3)
by Pierre-YvesChibon
Repository : http://git.fedorahosted.org/cgit/fedocal.git
On branch : master
>---------------------------------------------------------------
commit f143df3db3a698ae5f339919e25acc898c0584bc
Author: Pierre-Yves Chibon <pingou(a)pingoured.fr>
Date: Mon Nov 5 18:46:03 2012 +0100
Move the definition of TODAY to the __init__ of the tests
>---------------------------------------------------------------
fedocal/tests/__init__.py | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/fedocal/tests/__init__.py b/fedocal/tests/__init__.py
index 5bbd57d..fd12e4a 100644
--- a/fedocal/tests/__init__.py
+++ b/fedocal/tests/__init__.py
@@ -43,11 +43,13 @@ from sqlalchemy.exc import IntegrityError
sys.path.insert(0, os.path.join(os.path.dirname(
os.path.abspath(__file__)), '..'))
-from fedocallib import model
+from fedocallib import model, get_start_week
DB_PATH = '%s/test.db' %(os.path.dirname(
os.path.abspath(__file__)))
+TODAY = get_start_week(date.today().year, date.today().month,
+ date.today().day) + timedelta(days=2)
class Modeltests(unittest.TestCase):
""" Model tests. """
10 years, 7 months
[fedocal] master: Fix the fedocallib tests (39aebfd)
by Pierre-YvesChibon
Repository : http://git.fedorahosted.org/cgit/fedocal.git
On branch : master
>---------------------------------------------------------------
commit 39aebfd8a11a8c26f10470cf0dab481bb784ba81
Author: Pierre-Yves Chibon <pingou(a)pingoured.fr>
Date: Mon Nov 5 18:47:10 2012 +0100
Fix the fedocallib tests
There was a difference in the dates when the tests were ran at the
end or at the beginning of the week. So now we enforece everywhere
that the tests are ran on a Wednesday, that should avoid us having
to deal with corner cases of meetings from the past being suddenly
in the future or vice-versa
>---------------------------------------------------------------
fedocal/tests/test_fedocallib.py | 44 +++++++++++++++++--------------------
1 files changed, 20 insertions(+), 24 deletions(-)
diff --git a/fedocal/tests/test_fedocallib.py b/fedocal/tests/test_fedocallib.py
index f55e115..b813371 100644
--- a/fedocal/tests/test_fedocallib.py
+++ b/fedocal/tests/test_fedocallib.py
@@ -46,7 +46,7 @@ sys.path.insert(0, os.path.join(os.path.dirname(
import fedocallib
from fedocallib import model
-from tests import Modeltests
+from tests import Modeltests, TODAY
RESULT_201211_HTML = """
<table class="month">
@@ -59,8 +59,6 @@ RESULT_201211_HTML = """
<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>
"""
-TODAY = fedocallib.get_start_week(date.today().year, date.today().month,
- date.today().day) + timedelta(days=2)
class FakeUser(object):
@@ -92,13 +90,6 @@ class Fedocallibtests(Modeltests):
meeting.session = self.session
meeting.test_init_meeting()
- def __setup_meeting_today(self):
- """ Set up basic calendar information and add some meetings in
- them (at the date of today). """
- import test_meeting
- test_meeting.TODAY = date.today()
- self.__setup_meeting()
-
def test_create_session(self):
""" Test the create_session function. """
session = fedocallib.create_session('sqlite:///:memory:')
@@ -282,11 +273,10 @@ class Fedocallibtests(Modeltests):
def test_get_past_meeting_of_user(self):
""" Test the get_past_meeting_of_user function. """
- self.__setup_meeting_today()
+ self.__setup_meeting()
meetings = fedocallib.get_past_meeting_of_user(self.session,
- 'pingou')
+ 'pingou', TODAY)
self.assertNotEqual(meetings, None)
- # The output is either 2 or 0 depending on the day the test runs
self.assertEqual(len(meetings), 0)
self.assertEqual(meetings, [])
@@ -298,7 +288,7 @@ class Fedocallibtests(Modeltests):
obj.save(self.session)
self.session.commit()
meetings = fedocallib.get_past_meeting_of_user(self.session,
- 'pingou')
+ 'pingou', TODAY)
self.assertNotEqual(meetings, None)
self.assertEqual(len(meetings), 1)
self.assertEqual(meetings[0].meeting_name, 'A past test meeting')
@@ -309,15 +299,19 @@ class Fedocallibtests(Modeltests):
""" Test the get_future_single_meeting_of_user function. """
self.__setup_meeting()
meetings = fedocallib.get_future_single_meeting_of_user(self.session,
- 'pingou')
+ 'pingou', TODAY)
self.assertNotEqual(meetings, None)
- self.assertEqual(len(meetings), 2)
- self.assertEqual(meetings[0].meeting_name, 'test-meeting2')
+ self.assertEqual(len(meetings), 3)
+ self.assertEqual(meetings[0].meeting_name,
+ 'Fedora-fr-test-meeting')
self.assertEqual(meetings[0].meeting_information,
+ 'This is a test meeting')
+ self.assertEqual(meetings[1].meeting_name, 'test-meeting2')
+ self.assertEqual(meetings[1].meeting_information,
'This is another test meeting')
- self.assertEqual(meetings[1].meeting_name,
+ self.assertEqual(meetings[2].meeting_name,
'Test meeting with reminder')
- self.assertEqual(meetings[1].meeting_information,
+ self.assertEqual(meetings[2].meeting_information,
'This is a test meeting with reminder')
def test_get_future_single_meeting_of_user_empty(self):
@@ -334,7 +328,7 @@ class Fedocallibtests(Modeltests):
""" Test the get_future_regular_meeting_of_user function. """
self.__setup_meeting()
meetings = fedocallib.get_future_regular_meeting_of_user(
- self.session, 'pingou')
+ self.session, 'pingou', TODAY)
self.assertNotEqual(meetings, None)
self.assertEqual(len(meetings), 3)
self.assertEqual(meetings[0].meeting_name,
@@ -476,16 +470,18 @@ class Fedocallibtests(Modeltests):
calendar = vobject.iCalendar()
self.__setup_meeting()
meetings = fedocallib.get_future_single_meeting_of_user(
- self.session, 'pingou')
+ self.session, 'pingou', TODAY)
self.assertNotEqual(meetings, None)
- self.assertEqual(len(meetings), 2)
+ self.assertEqual(len(meetings), 3)
fedocallib.add_meetings_to_vcal(calendar, meetings)
cnt = 0
for event in calendar.vevent_list:
self.assertTrue(event.summary.value in [
- 'Test meeting with reminder', 'test-meeting2'])
- self.assertEqual(event.organizer.value, 'pingou')
+ 'Fedora-fr-test-meeting', 'Test meeting with reminder',
+ 'test-meeting2'])
+ self.assertTrue(event.organizer.value in [
+ 'pingou', 'pingou, shaiton'])
cnt = cnt + 1
self.assertEqual(cnt, len(meetings))
10 years, 7 months
[fedocal] master: Add a from_date to the get_future* and get_past* functions (7da8f3b)
by Pierre-YvesChibon
Repository : http://git.fedorahosted.org/cgit/fedocal.git
On branch : master
>---------------------------------------------------------------
commit 7da8f3b93b57134d77e5a3f84fa1ed084a3b9bed
Author: Pierre-Yves Chibon <pingou(a)pingoured.fr>
Date: Mon Nov 5 18:43:53 2012 +0100
Add a from_date to the get_future* and get_past* functions
This allows to provide a starting point from which the future/past
meetings should be retrieved.
Used in the unit-tests among others to prevent problem between
start/end of the week
>---------------------------------------------------------------
fedocal/fedocallib/__init__.py | 20 ++++++++++++++------
1 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/fedocal/fedocallib/__init__.py b/fedocal/fedocallib/__init__.py
index 351edf0..841e6b8 100644
--- a/fedocal/fedocallib/__init__.py
+++ b/fedocal/fedocallib/__init__.py
@@ -268,41 +268,49 @@ def is_date_in_future(indate, start_time):
return True
-def get_past_meeting_of_user(session, username):
+def get_past_meeting_of_user(session, username, from_date=date.today()):
""" Return all past meeting which specified username is among the
managers.
:arg session: the database session to use
:arg username: the FAS user name that you would like to have the
past meetings for.
+ :arg from_date: the date from which the futur meetings should be
+ retrieved. Defaults to today
"""
meetings = Meeting.get_past_meeting_of_user(session, username,
- date.today())
+ from_date)
return meetings
-def get_future_single_meeting_of_user(session, username):
+def get_future_single_meeting_of_user(session, username,
+ from_date=date.today()):
""" Return all future meeting which specified username is among the
managers.
:arg session: the database session to use
:arg username: the FAS user name that you would like to have the
past meetings for.
+ :arg from_date: the date from which the futur meetings should be
+ retrieved. Defaults to today
"""
meetings = Meeting.get_future_single_meeting_of_user(session,
- username, date.today())
+ username, from_date)
return meetings
-def get_future_regular_meeting_of_user(session, username):
+def get_future_regular_meeting_of_user(session, username,
+ from_date=date.today()):
""" Return all future recursive meeting which specified username is
among the managers.
:arg session: the database session to use
:arg username: the FAS user name that you would like to have the
past meetings for.
+ :arg from_date: the date from which the futur meetings should be
+ retrieved. Defaults to today
"""
meetings = Meeting.get_future_regular_meeting_of_user(session,
- username, date.today())
+ username, from_date)
return meetings
10 years, 7 months
[fedocal] master: Retrieve TODAY from tests and thus adapt the imports (cfee3b0)
by Pierre-YvesChibon
Repository : http://git.fedorahosted.org/cgit/fedocal.git
On branch : master
>---------------------------------------------------------------
commit cfee3b06ad609ab8a724ed85fcb6c4256c604e84
Author: Pierre-Yves Chibon <pingou(a)pingoured.fr>
Date: Mon Nov 5 18:46:50 2012 +0100
Retrieve TODAY from tests and thus adapt the imports
>---------------------------------------------------------------
fedocal/tests/test_meeting.py | 6 ++----
1 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/fedocal/tests/test_meeting.py b/fedocal/tests/test_meeting.py
index b598392..ebea2d5 100644
--- a/fedocal/tests/test_meeting.py
+++ b/fedocal/tests/test_meeting.py
@@ -43,12 +43,10 @@ from sqlalchemy.exc import IntegrityError
sys.path.insert(0, os.path.join(os.path.dirname(
os.path.abspath(__file__)), '..'))
-from fedocallib import model, get_start_week
-from tests import Modeltests
+from fedocallib import model
+from tests import Modeltests, TODAY
from test_calendar import Calendartests
-TODAY = get_start_week(date.today().year, date.today().month,
- date.today().day) + timedelta(days=2)
class Meetingtests(Modeltests):
""" Meeting tests. """
10 years, 7 months