summaryrefslogtreecommitdiffstats
path: root/tests/test_lps_gen.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_lps_gen.py')
-rw-r--r--tests/test_lps_gen.py165
1 files changed, 165 insertions, 0 deletions
diff --git a/tests/test_lps_gen.py b/tests/test_lps_gen.py
new file mode 100644
index 0000000..cbc9195
--- /dev/null
+++ b/tests/test_lps_gen.py
@@ -0,0 +1,165 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2015 lpschedule-generator author(s). See AUTHORS.
+#
+# 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/>.
+
+import json
+import pprint
+
+import mistune
+
+from os import path
+
+from nose.tools import *
+
+from lps_gen import *
+
+class TestLpsGen(object):
+ """
+ Class that tests the lps_gen.py module.
+ """
+ @classmethod
+ def setup_class(self):
+ """Runs before running any tests in this class."""
+
+ self.MD_FILE = path.join('tests', 'files', 'lp-sch.md')
+ self.MD_FILE_CONTENT = read_file(self.MD_FILE)
+
+ self.markdown = LPSMarkdown()
+ self.lps_dict = self.markdown(self.MD_FILE_CONTENT)
+
+ def setup(self):
+ """Runs before each test in this class."""
+ pass
+
+
+ def test_LPSMarkdown_day(self):
+ """
+ Testing `LPSMarkdown` class - Day.
+ """
+ days = ['Saturday, March 19',
+ 'Sunday, March 20']
+ i = 0
+ for day in self.lps_dict.keys():
+ assert_equal(day, days[i])
+ i = i + 1
+
+
+ def test_LPSMarkdown_timeslot(self):
+ """
+ Testing `LPSMarkdown` class - Timeslot.
+ """
+ timeslots = [
+ '09:00 - 09:45: Registration and Breakfast',
+ '09:45 - 10:45: Opening Keynote: Richard Stallman',
+ '10:55 - 11:40: Session Block 1A',
+ '11:40 - 11:50: Break',
+ '11:50 - 12:35: Session Block 2A',
+ '09:00 - 09:45: Registration and breakfast',
+ '09:45 - 10:30: Keynote: Benjamin Mako Hill',
+ '10:30 - 10:40: Break',
+ '10:40 - 11:25: Session Block 1B',
+ ]
+
+ i = 0
+ for lps_timeslots in self.lps_dict.values():
+ for timeslot in lps_timeslots.keys():
+ assert_equal(timeslot, timeslots[i])
+ i = i + 1
+
+
+ def test_LPSMarkdown_session(self):
+ """
+ Testing `LPSMarkdown` class - Session.
+ """
+ sessions = [
+ 'Free software, free hardware, and other things',
+ 'Federation and GNU',
+ 'Dr. Hyde and Mr. Jekyll: advocating for free software in nonfree academic contexts',
+ 'TAFTA, CETA, TISA: traps and threats to Free Software Everywhere',
+ 'Let\'s encrypt!',
+ 'Attribution revolution -- turning copyright upside-down',
+ 'Access without empowerment',
+ 'Fork and ignore: fighting a GPL violation by coding instead',
+ 'Who did this? Just wait until your father gets home',
+ ]
+
+ i = 0
+ for lps_timeslots in self.lps_dict.values():
+ for lps_sessions in lps_timeslots.values():
+ for session in lps_sessions.keys():
+ assert_equal(session, sessions[i])
+ i = i + 1
+
+
+ def test_LPSMarkdown_speaker(self):
+ """
+ Testing `LPSMarkdown` class - Speaker
+ """
+ speakers = [
+ 'Richard Stallman',
+ 'Christopher Webber',
+ 'ginger coons',
+ ['Marianne Corvellec', 'Jonathan Le Lous'],
+ 'Seth Schoen',
+ 'Jonas Öberg',
+ 'Benjamin Mako Hill',
+ 'Bradley Kuhn',
+ 'Ken Starks',
+ ]
+
+ i = 0
+ for lps_timeslots in self.lps_dict.values():
+ for lps_sessions in lps_timeslots.values():
+ for session_info in lps_sessions.values():
+ assert_equal(session_info['speaker'], speakers[i])
+ i = i + 1
+
+
+ def test_LPSMarkdown_room(self):
+ """
+ Testing `LPSMarkdown` class - Room
+ """
+ rooms = [
+ 'Room 32-123',
+ 'Room 32-123',
+ 'Room 32-141',
+ 'Room 32-155',
+ 'Room 32-123',
+ 'Room 32-141',
+ 'Room 32-123',
+ 'Room 32-123',
+ 'Room 32-141',
+ ]
+ i = 0
+ for lps_timeslots in self.lps_dict.values():
+ for lps_sessions in lps_timeslots.values():
+ for session_info in lps_sessions.values():
+ assert_equal(session_info['room'], rooms[i])
+ i = i + 1
+
+
+ def teardown(self):
+ """Cleans up things after each test in this class."""
+ pass
+
+
+ @classmethod
+ def teardown_class(self):
+ """Purge the mess created by this test."""
+ pass