lpschedule-generator

libreplanet schedule generator - ricketyspace.net/lpschedule-generator
git clone git://git.ricketyspace.net/lpschedule-generator.git
Log | Files | Refs

commit fa7dec289c0b5b2ab7b447f0c64ec2be0c5e93b9
parent 60e9cc2c904b05970b7c6f43f6fdbad9b78320f7
Author: rsiddharth <rsd@gnu.org>
Date:   Sun,  7 Feb 2016 14:12:33 -0500

Added template (under tests) for LP speakers' page

Address issue #1.

Diffstat:
tests/files/lp-speakers-2016.jinja2 | 124+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/test_lps_gen.py | 10++++++++++
2 files changed, 134 insertions(+), 0 deletions(-)

diff --git a/tests/files/lp-speakers-2016.jinja2 b/tests/files/lp-speakers-2016.jinja2 @@ -0,0 +1,124 @@ +{# -*- mode: jinja2; -*- #} +{# + Copyright (C) 2016 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 + <http://www.gnu.org/licenses/>. +#} + + +{# make speakers header macro #} +{% macro mk_speakers_header(speaker_type) %} + <header class="{{ speaker_type }}-header"> + <hgroup> + {% if speaker_type == 'keynote-speakers' %} + <h2>Keynote speakers</h2> + {% else %} + <h2>Speakers</h2> + {% endif %} + </hgroup> + </header> +{% endmacro %} + +{# make keynote speaker header macro #} +{% macro mk_keynote_speaker_header(speaker, id) %} + <header id="{{ id }}" class="keynote-speaker-header"> + <hgroup> + <h2>{{ speaker }}</h2> + </hgroup> + </header> +{% endmacro %} + +{# make speaker header macro #} +{% macro mk_speaker_header(speaker, id) %} + <header id="{{ id }}" class="speaker-header"> + <hgroup> + <h2>{{ speaker }}</h2> + </hgroup> + </header> +{% endmacro %} + +{# make bio macro #} +{% macro mk_bio(bio_list) %} + {% for bio_p in bio_list %} + <p>{{ bio_p }}</p> + {% endfor %} +{% endmacro %} + +{# populate keynote speakers macro #} +{% macro populate_keynote_speakers(speakers) %} + {% for speaker in speakers %} + <section class="speaker-block" id="lp-keynote-speaker-{{ loop.index }}"> + <!-- keynote-speaker-{{ loop.index }} row start --> + <div class="row"> + {% if speaker.img_url %} + <!-- keynote-speaker-{{ loop.index }} img column start --> + <div class="col-md-3 col-sm-4 col-xs-5"> + <img class="img-responsive" src="{{ speaker.img_url }}" + alt="[ {{ speaker.img_alt }} ]" /> + </div> <!-- keynote-speaker-{{ loop.index }} img column end --> + <!-- keynote-speaker-{{ loop.index }} content column start --> + <div class="col-md-9 col-sm-8 col-xs-7"> + {% else %} + <!-- keynote-speaker-{{ loop.index }} content column start --> + <div class="col-md-offset-3 col-sm-offset-4 col-xs-offset-5 col-md-9 col-sm-8 col-xs-7"> + {% endif %} + {{ mk_keynote_speaker_header(speaker.speaker, speaker.id) }} + {{ mk_bio(speaker.bio) }} + </div> <!-- keynote-speaker-{{ loop.index }} content column end --> + </div> <!-- keynote-speaker-{{ loop.index }} row end --> + </section> + {% endfor %} +{% endmacro %} + +{# populate speakers macro #} +{% macro populate_speakers(speakers) %} + {% for speaker in speakers %} + <section class="speaker-block" id="lp-speaker-{{ loop.index }}"> + <div class="row"> <!-- speaker-{{ loop.index }} row start --> + {% if speaker.img_url %} + <!-- speaker-{{ loop.index }} img column start --> + <div class="col-md-2 col-sm-3 col-xs-4"> + <img class="img-responsive" src="{{ speaker.img_url }}" + alt="[ {{ speaker.img_alt }} ]" /> + </div> <!-- speaker-{{ loop.index }} img column end --> + <!-- speaker-{{ loop.index }} content column start --> + <div class="col-md-10 col-sm-9 col-xs-8"> + {% else %} + <!-- speaker-{{ loop.index }} content column start --> + <div class="col-md-offset-2 col-sm-offset-3 col-xs-offset-4 col-md-10 col-sm-9 col-xs-8"> + {% endif %} + {{ mk_speaker_header(speaker.speaker, speaker.id) }} + {{ mk_bio(speaker.bio) }} + </div> <!-- speaker-{{ loop.index }} content column end --> + </div> <!-- speaker-{{ loop.index }} row end --> + </section> + {% endfor %} +{% endmacro %} + +{# lp speakers 2016 template start #} +{% for speaker_type, speakers in lp_dict.iteritems() %} + <article class="speakers-block" id="lp-{{ speaker_type }}"> + {% if speaker_type == 'keynote-speakers' %} + {{ mk_speakers_header(speaker_type) }} + {{ populate_keynote_speakers(speakers) }} + {% elif speaker_type == 'speakers' %} + {{ mk_speakers_header(speaker_type) }} + {{ populate_speakers(speakers) }} + {% endif %} + </article> +{% endfor %} +{# lp speakers 2016 template end #} diff --git a/tests/test_lps_gen.py b/tests/test_lps_gen.py @@ -212,6 +212,9 @@ class TestLPSpeakers(object): self.MD_FILE = path.join('tests', 'files', 'lp-speakers.md') self.MD_FILE_CONTENT = read_file(self.MD_FILE) + self.SPEAKERS_TEMPLATE = path.join('tests', 'files', + 'lp-speakers-2016.jinja2') + self.markdown = LPSpeakersMarkdown() self.lpspeakers_dict = self.markdown(self.MD_FILE_CONTENT) @@ -431,6 +434,13 @@ class TestLPSpeakers(object): i = i + 1 + def test_RenderHTML(self): + """Testing `RenderHTML` function with LP speakers + """ + lps_html = RenderHTML(self.lpspeakers_dict, self.SPEAKERS_TEMPLATE) + print lps_html + + def teardown(self): """Cleans up things after each test in this class.""" pass