From 77aa5dad923f4efad2e271ca3f38a7585ab2680b Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Thu, 28 Jan 2016 08:39:17 -0500 Subject: lps_gen accepts template as arg. As per Zak's request, the script now requires the user to pass the template as (the first) argument to the script. The script does not use the template that is part of the lpschedule-generator module; indeed the internal template will be deleted later. --- tests/files/lp-sch-2016.jinja2 | 117 +++++++++++++++++++++++++++++++++++++++++ tests/test_lps_gen.py | 12 +++-- 2 files changed, 124 insertions(+), 5 deletions(-) create mode 100644 tests/files/lp-sch-2016.jinja2 (limited to 'tests') diff --git a/tests/files/lp-sch-2016.jinja2 b/tests/files/lp-sch-2016.jinja2 new file mode 100644 index 0000000..f7cb0de --- /dev/null +++ b/tests/files/lp-sch-2016.jinja2 @@ -0,0 +1,117 @@ +{# -*- mode: jinja2; -*- #} +{# + Copyright (C) 2015 lpschedule-generator contributors. See CONTRIBUTORS. + + This file is part of lpschedule-generator. + + lpschedule-generator is free software: you can redistribute it + and/or modify it under the terms of the GNU General Public License + as published by the Free Software Foundation, either version 3 of + the License, or (at your option) any later version. + + lpschedule-generator is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with lpschedule-generator (see COPYING). If not, see + . +#} + +{# macros start #} + +{# make speakers macro #} +{% macro mk_speakers(speakers) %} + + {% for speaker in speakers %} + {% if loop.last %} + {{ speaker }} + {% else %} + {{ speaker }}, + {% endif %} + {% endfor %} + +{% endmacro %} + +{# make room macro #} +{% macro mk_room(room) %} + {{ room }} +{% endmacro %} + +{# make day header macro #} +{% macro mk_day_header(day, collapse_area) %} +
+
+

{{ day }}

+
+
+{% endmacro %} + +{# make timeslot header macro #} +{% macro mk_timeslot_header(timeslot, collapse, collapse_area='') %} +
+
+

{{ timeslot }}

+
+
+{% endmacro %} + +{# make session header macro #} +{% macro mk_session_header(session) %} +
+
+

{{ session }}

+
+
+{% endmacro %} + +{# desc macro #} +{% macro desc(disc_list) %} + {% for desc_p in disc_list %} +

{{ desc_p }}

+ {% endfor %} +{% endmacro %} + +{# populate sessions macro #} +{% macro populate_sessions(sessions, day_index, timeslot_index) %} + {% for session, session_info in sessions.iteritems() %} {# session start #} +
+ {{ mk_session_header(session) }} + {{ mk_speakers(session_info['speakers']) }} +

+ {{ mk_room(session_info['room']) }} + +

+
+ {{ desc(session_info['desc']) }} +
+
+ {% endfor %} {# session end #} +{% endmacro %} + +{# populate timeslots macro #} +{% macro populate_timeslots(timeslots, day_index) %} + {% for timeslot, sessions in timeslots.iteritems() %} {# timeslot start #} +
+ {{ mk_timeslot_header(timeslot) }} + {% if sessions|length > 0 %} + {{ populate_sessions(sessions, day_index, loop.index) }} + {% endif %} +
+ {% endfor %} {# timeslot start #} +{% endmacro %} + +{# lp 2016 template start #} +{% for day, timeslots in schedule.iteritems() %} {# day start #} +
+ {{ mk_day_header(day) }} + {{ populate_timeslots(timeslots, loop.index) }} +
+{% endfor %} {# day loop end #} diff --git a/tests/test_lps_gen.py b/tests/test_lps_gen.py index e964a5a..a84ca78 100644 --- a/tests/test_lps_gen.py +++ b/tests/test_lps_gen.py @@ -42,6 +42,9 @@ class TestLpsGen(object): self.MD_FILE = path.join('tests', 'files', 'lp-sch.md') self.MD_FILE_CONTENT = read_file(self.MD_FILE) + self.SCH_TEMPLATE = path.join('tests', 'files', + 'lp-sch-2016.jinja2') + self.markdown = LPSMarkdown() self.lps_dict = self.markdown(self.MD_FILE_CONTENT) @@ -160,19 +163,18 @@ class TestLpsGen(object): def test_RenderHTML(self): """Testing `RenderHTML` function """ - lps_html = RenderHTML(self.lps_dict, '2016') + lps_html = RenderHTML(self.lps_dict, self.SCH_TEMPLATE) print lps_html @raises(SystemExit) def test_RenderHTML_invalid_year(self): - """Testing `RenderHTML` function - with invalid year + """Testing `RenderHTML` function - with non-existent template """ with mock.patch('sys.stdout', new_callable=StringIO) as out: - invalid_year = '2016_invalid' - template_name = 'lp-sch-%s.jinja2' % invalid_year + nonexistent_template = 'lpsch-template.null' - lps_html = RenderHTML(self.lps_dict, invalid_year) + lps_html = RenderHTML(self.lps_dict, nonexistent_template) expected_out = 'Template %s not found.\n' % template_name assert out.getvalue() == expected_out -- cgit v1.2.3