def fetch_and_parse_week(student): events = schedule_parser.read(_fetch_raw_html_schedule(student.faculty, student.course, student.group, student.form)) return [Event(title=event['subject'], description=event['description'], location=event['location'], starttime=event['date']['start'], endtime=event['date']['end'], creator=student.student) for event in events]
def test_schedule_day_student(self): self.assertEqual( read( open(os.path.join(self.data_dir, 'schedule_day_student.htm')).read()), [{ 'date': { 'end': datetime.datetime(2013, 5, 17, 14, 25), 'start': datetime.datetime(2013, 5, 17, 13, 5) }, 'description': u'\u041b\u0435\u043a\u0446\u0438\u0438(\u041a\u043e\u0440\u043d\u0435\u0435\u0432\u0435\u0446 \u0418\u0440\u0438\u043d\u0430 \u0412\u0430\u0441\u0438\u043b\u044c\u0435\u0432\u043d\u0430)', 'location': '3/233', 'subject': u'\u041c\u0438\u043a\u0440\u043e\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430' }, { 'date': { 'end': datetime.datetime(2013, 5, 17, 15, 55), 'start': datetime.datetime(2013, 5, 17, 14, 35) }, 'description': u'\u0421\u0435\u043c\u0438\u043d\u0430\u0440\u044b(\u0413\u0443\u0441\u0435\u0439\u043d\u043e\u0432\u0430 \u042d.\u041c.)', 'location': '3/230', 'subject': u'\u041c\u0438\u043a\u0440\u043e\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430' }, { 'date': { 'end': datetime.datetime(2013, 5, 17, 17, 25), 'start': datetime.datetime(2013, 5, 17, 16, 5) }, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '3/230', 'subject': u'\u041c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433' }, { 'date': { 'end': datetime.datetime(2013, 5, 18, 14, 25), 'start': datetime.datetime(2013, 5, 18, 13, 5) }, 'description': u'\u0421\u0435\u043c\u0438\u043d\u0430\u0440\u044b(\u0413\u0443\u0441\u0435\u0439\u043d\u043e\u0432\u0430 \u042d.\u041c.)', 'location': '1/701', 'subject': u'\u041c\u0438\u043a\u0440\u043e\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430' }, { 'date': { 'end': datetime.datetime(2013, 5, 18, 15, 55), 'start': datetime.datetime(2013, 5, 18, 14, 35) }, 'description': u'\u0421\u0435\u043c\u0438\u043d\u0430\u0440\u044b(\u041c\u0430\u043b\u0438\u043d\u043e\u0432\u0441\u043a\u0430\u044f \u041e\u043b\u044c\u0433\u0430 \u041c\u0438\u0445\u0430\u0439\u043b\u043e\u0432\u043d\u0430)', 'location': '1/601', 'subject': u'\u042d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u043e\u0446\u0438\u043e\u043b\u043e\u0433\u0438\u044f' }, { 'date': { 'end': datetime.datetime(2013, 5, 20, 14, 25), 'start': datetime.datetime(2013, 5, 20, 13, 5) }, 'description': u'\u041b\u0435\u043a\u0446\u0438\u0438(\u041c\u043e\u0440\u043e\u0437\u0435\u0432\u0438\u0447 \u041e\u043b\u044c\u0433\u0430 \u0410\u043d\u0430\u0442\u043e\u043b\u044c\u0435\u0432\u043d\u0430)', 'location': '3/450', 'subject': u'\u041c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433' }, { 'date': { 'end': datetime.datetime(2013, 5, 20, 15, 55), 'start': datetime.datetime(2013, 5, 20, 14, 35) }, 'description': u'\u0417\u0430\u043d\u044f\u0442\u0438\u044f \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0430\u043d\u04331, \u0412\u0438\u0440\u0448\u0438\u0446 \u041d\u0430\u0442\u0430\u043b\u0438\u044f \u0418\u0432\u0430\u043d\u043e\u0432\u043d\u0430 - 2/313\n\u043f\u043e\u0434\u0433\u0440.\u0430\u043d\u04332, \u041a\u0438\u0440\u0438\u043b\u044c\u0447\u0438\u043a \u0422\u0430\u0442\u044c\u044f\u043d\u0430 \u041a\u0430\u0437\u0438\u043c\u0438\u0440\u043e\u0432\u043d\u0430 - 2/426', 'subject': u'16 \u0418\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a' }, { 'date': { 'end': datetime.datetime(2013, 5, 20, 19, 5), 'start': datetime.datetime(2013, 5, 20, 17, 45) }, 'description': u'\u0417\u0430\u043d\u044f\u0442\u0438\u044f \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0444\u0440\u043d, \u0421\u0430\u043b\u0443\u0449\u0435\u0432\u0430 \u0416\u0430\u043d\u043d\u0430 \u0418\u0432\u0430\u043d\u043e\u0432\u043d\u0430 - 2/417', 'subject': u'16 \u0418\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a' }, { 'date': { 'end': datetime.datetime(2013, 5, 21, 15, 55), 'start': datetime.datetime(2013, 5, 21, 14, 35) }, 'description': u'\u041b\u0435\u043a\u0446\u0438\u0438(\u041a\u043e\u043f\u0442\u0443\u0440 \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440\u043e\u0432\u0438\u0447)', 'location': u'\xa0', 'subject': u'\u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u0443\u043b\u044c\u0442\u0443\u0440\u0430' }, { 'date': { 'end': datetime.datetime(2013, 5, 21, 17, 25), 'start': datetime.datetime(2013, 5, 21, 16, 5) }, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '3/454', 'subject': u'\u0412\u044b\u0441\u0448\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430' }, { 'date': { 'end': datetime.datetime(2013, 5, 21, 19, 5), 'start': datetime.datetime(2013, 5, 21, 17, 45) }, 'description': u'\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0410, \u041f\u0443\u043d\u0447\u0438\u043a \u0417\u043e\u044f \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440\u043e\u0432\u043d\u0430 - 2/402\n\u043f\u043e\u0434\u0433\u0440.\u0411, \u041f\u0435\u0442\u043a\u0435\u0432\u0438\u0447 \u041c\u0430\u0440\u0438\u0430\u043d\u043d\u0430 \u0410\u043d\u0430\u0442\u043e\u043b\u044c\u0435\u0432\u043d\u0430 - 2/401', 'subject': u'16 \u041a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438' }, { 'date': { 'end': datetime.datetime(2013, 5, 22, 15, 55), 'start': datetime.datetime(2013, 5, 22, 14, 35) }, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '1/701', 'subject': u'\u041c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433' }, { 'date': { 'end': datetime.datetime(2013, 5, 22, 17, 25), 'start': datetime.datetime(2013, 5, 22, 16, 5) }, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '1/701', 'subject': u'\u0412\u044b\u0441\u0448\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430' }, { 'date': { 'end': datetime.datetime(2013, 5, 23, 11, 5), 'start': datetime.datetime(2013, 5, 23, 9, 45) }, 'description': u'\u041b\u0435\u043a\u0446\u0438\u0438', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440., \u041a\u043e\u043f\u0442\u0443\u0440 \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440\u043e\u0432\u0438\u0447 - \xa0', 'subject': u'16 \u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u0443\u043b\u044c\u0442\u0443\u0440\u0430' }, { 'date': { 'end': datetime.datetime(2013, 5, 23, 11, 5), 'start': datetime.datetime(2013, 5, 23, 9, 45) }, 'description': u'\u0417\u0430\u043d\u044f\u0442\u0438\u044f \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0440\u0443\u0441, \u0411\u043e\u0436\u043a\u043e\u0432\u0430 \u041c\u0430\u0440\u0438\u043d\u0430 \u0418\u0432\u0430\u043d\u043e\u0432\u043d\u0430 - 2/427\u0430', 'subject': u'16 \u0418\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a' }, { 'date': { 'end': datetime.datetime(2013, 5, 23, 12, 35), 'start': datetime.datetime(2013, 5, 23, 11, 15) }, 'description': u'\u0417\u0430\u043d\u044f\u0442\u0438\u044f \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0440\u0443\u0441, \u0411\u043e\u0436\u043a\u043e\u0432\u0430 \u041c\u0430\u0440\u0438\u043d\u0430 \u0418\u0432\u0430\u043d\u043e\u0432\u043d\u0430 - 2/427\u0430', 'subject': u'16 \u0418\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a' }, { 'date': { 'end': datetime.datetime(2013, 5, 23, 14, 25), 'start': datetime.datetime(2013, 5, 23, 13, 5) }, 'description': u'\u0421\u0435\u043c\u0438\u043d\u0430\u0440\u044b(\u0413\u0443\u0441\u0435\u0439\u043d\u043e\u0432\u0430 \u042d.\u041c.)', 'location': '3/226', 'subject': u'\u041c\u0438\u043a\u0440\u043e\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430' }, { 'date': { 'end': datetime.datetime(2013, 5, 23, 15, 55), 'start': datetime.datetime(2013, 5, 23, 14, 35) }, 'description': u'\u0417\u0430\u043d\u044f\u0442\u0438\u044f \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0430\u043d\u04331, \u0412\u0438\u0440\u0448\u0438\u0446 \u041d\u0430\u0442\u0430\u043b\u0438\u044f \u0418\u0432\u0430\u043d\u043e\u0432\u043d\u0430 - 3/440\n\u043f\u043e\u0434\u0433\u0440.\u0430\u043d\u04332, \u041a\u0438\u0440\u0438\u043b\u044c\u0447\u0438\u043a \u0422\u0430\u0442\u044c\u044f\u043d\u0430 \u041a\u0430\u0437\u0438\u043c\u0438\u0440\u043e\u0432\u043d\u0430 - 2/428', 'subject': u'16 \u0418\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a' }, { 'date': { 'end': datetime.datetime(2013, 5, 23, 19, 5), 'start': datetime.datetime(2013, 5, 23, 17, 45) }, 'description': u'\u0417\u0430\u043d\u044f\u0442\u0438\u044f \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0444\u0440\u043d, \u0421\u0430\u043b\u0443\u0449\u0435\u0432\u0430 \u0416\u0430\u043d\u043d\u0430 \u0418\u0432\u0430\u043d\u043e\u0432\u043d\u0430 - 3/429', 'subject': u'16 \u0418\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a' }]) self.assertEqual( read( open(os.path.join(self.data_dir, 'schedule_day_student2.htm')).read()), [{ 'date': { 'end': datetime.datetime(2013, 5, 16, 15, 55), 'start': datetime.datetime(2013, 5, 16, 14, 35) }, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '4/301', 'subject': u'\u0424\u0438\u043d\u0430\u043d\u0441\u044b \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u044f\u0442\u0438\u0439' }, { 'date': { 'end': datetime.datetime(2013, 5, 16, 17, 25), 'start': datetime.datetime(2013, 5, 16, 16, 5) }, 'description': u'\u0421\u0435\u043c\u0438\u043d\u0430\u0440\u044b(\u041a\u043b\u0438\u043d\u043e\u0432\u0430 \u0415\u043a\u0430\u0442\u0435\u0440\u0438\u043d\u0430 \u0412\u0438\u043a\u0442\u043e\u0440\u043e\u0432\u043d\u0430)', 'location': '4/301', 'subject': u'\u041f\u043e\u043b\u0438\u0442\u043e\u043b\u043e\u0433\u0438\u044f' }, { 'date': { 'end': datetime.datetime(2013, 5, 16, 19, 5), 'start': datetime.datetime(2013, 5, 16, 17, 45) }, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '4/301', 'subject': u'\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430' }, { 'date': { 'end': datetime.datetime(2013, 5, 17, 15, 55), 'start': datetime.datetime(2013, 5, 17, 14, 35) }, 'description': u'\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0430, \u041f\u044b\u0442\u043b\u044f\u043a \u0412.\u0412 - 4/801', 'subject': u'15 \u0418\u043c\u0438\u0442\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0435 \u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435' }, { 'date': { 'end': datetime.datetime(2013, 5, 17, 17, 25), 'start': datetime.datetime(2013, 5, 17, 16, 5) }, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '4/606', 'subject': u'\u0421\u0438\u0441\u0442\u0435\u043c\u044b \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0430 \u0432 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0435' }, { 'date': { 'end': datetime.datetime(2013, 5, 18, 14, 25), 'start': datetime.datetime(2013, 5, 18, 13, 5) }, 'description': u'\u0421\u0435\u043c\u0438\u043d\u0430\u0440\u044b(\u041a\u043b\u0438\u043d\u043e\u0432\u0430 \u0415\u043a\u0430\u0442\u0435\u0440\u0438\u043d\u0430 \u0412\u0438\u043a\u0442\u043e\u0440\u043e\u0432\u043d\u0430)', 'location': '4/301', 'subject': u'\u041f\u043e\u043b\u0438\u0442\u043e\u043b\u043e\u0433\u0438\u044f' }, { 'date': { 'end': datetime.datetime(2013, 5, 18, 15, 55), 'start': datetime.datetime(2013, 5, 18, 14, 35) }, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '4/301', 'subject': u'\u0424\u0438\u043d\u0430\u043d\u0441\u044b \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u044f\u0442\u0438\u0439' }, { 'date': { 'end': datetime.datetime(2013, 5, 18, 17, 25), 'start': datetime.datetime(2013, 5, 18, 16, 5) }, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '4/301', 'subject': u'\u041e\u0441\u043d\u043e\u0432\u044b \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0441\u043a\u0438\u0439 \u0443\u0447\u0435\u0442' }, { 'date': { 'end': datetime.datetime(2013, 5, 20, 15, 55), 'start': datetime.datetime(2013, 5, 20, 14, 35) }, 'description': u'\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0430, \u0427\u0438\u0442\u0430\u044f \u0413\u0438\u0433\u043b\u0430 \u041e\u0442\u0430\u0440\u043e\u0432\u0438\u0447 - 4/602', 'subject': u'16 \u041c\u0435\u0442\u043e\u0434\u044b \u043c\u043d\u043e\u0433\u043e\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0435' }, { 'date': { 'end': datetime.datetime(2013, 5, 20, 15, 55), 'start': datetime.datetime(2013, 5, 20, 14, 35) }, 'description': u'\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0431, \u041a\u0440\u0443\u043f\u043e\u0434\u0435\u0440\u043e\u0432\u0430 \u0410\u043d\u043d\u0430 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u043e\u0432\u043d\u0430 - 2/200', 'subject': u'16 \u041e\u0441\u043d\u043e\u0432\u044b \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0441\u043a\u0438\u0439 \u0443\u0447\u0435\u0442' }, { 'date': { 'end': datetime.datetime(2013, 5, 20, 17, 25), 'start': datetime.datetime(2013, 5, 20, 16, 5) }, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '4/606', 'subject': u'\u041e\u0441\u043d\u043e\u0432\u044b \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0441\u043a\u0438\u0439 \u0443\u0447\u0435\u0442' }, { 'date': { 'end': datetime.datetime(2013, 5, 20, 19, 5), 'start': datetime.datetime(2013, 5, 20, 17, 45) }, 'description': u'\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0431, \u0427\u0438\u0442\u0430\u044f \u0413\u0438\u0433\u043b\u0430 \u041e\u0442\u0430\u0440\u043e\u0432\u0438\u0447 - 4/602', 'subject': u'16 \u041c\u0435\u0442\u043e\u0434\u044b \u043c\u043d\u043e\u0433\u043e\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0435' }, { 'date': { 'end': datetime.datetime(2013, 5, 20, 20, 35), 'start': datetime.datetime(2013, 5, 20, 19, 15) }, 'description': u'\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0430, \u041a\u0440\u0443\u043f\u043e\u0434\u0435\u0440\u043e\u0432\u0430 \u0410\u043d\u043d\u0430 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u043e\u0432\u043d\u0430 - 2/200', 'subject': u'16 \u041e\u0441\u043d\u043e\u0432\u044b \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0441\u043a\u0438\u0439 \u0443\u0447\u0435\u0442' }, { 'date': { 'end': datetime.datetime(2013, 5, 21, 15, 55), 'start': datetime.datetime(2013, 5, 21, 14, 35) }, 'description': u'\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0430, \u0411\u043e\u0440\u043e\u0434\u0438\u043d\u0430 \u0422\u0430\u0442\u044c\u044f\u043d\u0430 \u0410\u043d\u0430\u0442\u043e\u043b\u044c\u0435\u0432\u043d\u0430 - 4/602\n\u043f\u043e\u0434\u0433\u0440.\u0431, \u041f\u0430\u0440\u0430\u0449\u0435\u043d\u043a\u043e \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440 \u0412\u0438\u043a\u0442\u043e\u0440\u043e\u0432\u0438\u0447 - 7/8', 'subject': u'16 \u041c\u043e\u0434\u0435\u043b\u0438 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0434\u0435\u043b\u043e\u0432\u044b\u0435 \u0438\u0433\u0440\u044b \u0432 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u0432 \u0410\u041f\u041a, \u0432 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u043e\u0439 \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0432 \u043c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433\u0435 \u0438 \u043b\u043e\u0433\u0438\u0441\u0442\u0438\u043a\u0435' }, { 'date': { 'end': datetime.datetime(2013, 5, 21, 17, 25), 'start': datetime.datetime(2013, 5, 21, 16, 5) }, 'description': u'\u041b\u0435\u043a\u0446\u0438\u0438(\u041d\u0435\u0442\u0435\u0441\u0430 \u041b\u044e\u0434\u043c\u0438\u043b\u0430 \u0418\u0432\u0430\u043d\u043e\u0432\u043d\u0430)', 'location': '4/301', 'subject': u'\u041e\u0441\u043d\u043e\u0432\u044b \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0441\u043a\u0438\u0439 \u0443\u0447\u0435\u0442' }, { 'date': { 'end': datetime.datetime(2013, 5, 21, 19, 5), 'start': datetime.datetime(2013, 5, 21, 17, 45) }, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '4/301', 'subject': u'\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430' }, { 'date': { 'end': datetime.datetime(2013, 5, 22, 15, 55), 'start': datetime.datetime(2013, 5, 22, 14, 35) }, 'description': u'\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0430, \u041a\u0440\u0443\u043f\u043e\u0434\u0435\u0440\u043e\u0432\u0430 \u0410\u043d\u043d\u0430 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u043e\u0432\u043d\u0430 - 2/200', 'subject': u'16 \u041e\u0441\u043d\u043e\u0432\u044b \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0441\u043a\u0438\u0439 \u0443\u0447\u0435\u0442' }, { 'date': { 'end': datetime.datetime(2013, 5, 22, 15, 55), 'start': datetime.datetime(2013, 5, 22, 14, 35) }, 'description': u'\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0431, \u041f\u044b\u0442\u043b\u044f\u043a \u0412.\u0412 - 4/801', 'subject': u'16 \u0421\u0438\u0441\u0442\u0435\u043c\u044b \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0430 \u0432 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0435' }, { 'date': { 'end': datetime.datetime(2013, 5, 22, 17, 25), 'start': datetime.datetime(2013, 5, 22, 16, 5) }, 'description': u'\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0430, \u041f\u044b\u0442\u043b\u044f\u043a \u0412.\u0412 - 4/801', 'subject': u'16 \u0421\u0438\u0441\u0442\u0435\u043c\u044b \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0430 \u0432 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0435' }, { 'date': { 'end': datetime.datetime(2013, 5, 22, 19, 5), 'start': datetime.datetime(2013, 5, 22, 17, 45) }, 'description': u'\u041b\u0435\u043a\u0446\u0438\u0438(\u041b\u0430\u0437\u0435\u0431\u043d\u0438\u043a \u042e\u0440\u0438\u0439 \u0412\u0438\u043a\u0442\u043e\u0440\u043e\u0432\u0438\u0447)', 'location': '4/905', 'subject': u'\u041a\u043e\u0440\u0440\u0443\u043f\u0446\u0438\u044f \u0438 \u0435\u0435 \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c' }])
def test_schedule_day_student(self): self.assertEqual(read(open(os.path.join(self.data_dir, 'schedule_day_student.htm')).read()), [{'date': {'end': datetime.datetime(2013, 5, 17, 14, 25), 'start': datetime.datetime(2013, 5, 17, 13, 5)}, 'description': u'\u041b\u0435\u043a\u0446\u0438\u0438(\u041a\u043e\u0440\u043d\u0435\u0435\u0432\u0435\u0446 \u0418\u0440\u0438\u043d\u0430 \u0412\u0430\u0441\u0438\u043b\u044c\u0435\u0432\u043d\u0430)', 'location': '3/233', 'subject': u'\u041c\u0438\u043a\u0440\u043e\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430'}, {'date': {'end': datetime.datetime(2013, 5, 17, 15, 55), 'start': datetime.datetime(2013, 5, 17, 14, 35)}, 'description': u'\u0421\u0435\u043c\u0438\u043d\u0430\u0440\u044b(\u0413\u0443\u0441\u0435\u0439\u043d\u043e\u0432\u0430 \u042d.\u041c.)', 'location': '3/230', 'subject': u'\u041c\u0438\u043a\u0440\u043e\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430'}, {'date': {'end': datetime.datetime(2013, 5, 17, 17, 25), 'start': datetime.datetime(2013, 5, 17, 16, 5)}, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '3/230', 'subject': u'\u041c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433'}, {'date': {'end': datetime.datetime(2013, 5, 18, 14, 25), 'start': datetime.datetime(2013, 5, 18, 13, 5)}, 'description': u'\u0421\u0435\u043c\u0438\u043d\u0430\u0440\u044b(\u0413\u0443\u0441\u0435\u0439\u043d\u043e\u0432\u0430 \u042d.\u041c.)', 'location': '1/701', 'subject': u'\u041c\u0438\u043a\u0440\u043e\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430'}, {'date': {'end': datetime.datetime(2013, 5, 18, 15, 55), 'start': datetime.datetime(2013, 5, 18, 14, 35)}, 'description': u'\u0421\u0435\u043c\u0438\u043d\u0430\u0440\u044b(\u041c\u0430\u043b\u0438\u043d\u043e\u0432\u0441\u043a\u0430\u044f \u041e\u043b\u044c\u0433\u0430 \u041c\u0438\u0445\u0430\u0439\u043b\u043e\u0432\u043d\u0430)', 'location': '1/601', 'subject': u'\u042d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u043e\u0446\u0438\u043e\u043b\u043e\u0433\u0438\u044f'}, {'date': {'end': datetime.datetime(2013, 5, 20, 14, 25), 'start': datetime.datetime(2013, 5, 20, 13, 5)}, 'description': u'\u041b\u0435\u043a\u0446\u0438\u0438(\u041c\u043e\u0440\u043e\u0437\u0435\u0432\u0438\u0447 \u041e\u043b\u044c\u0433\u0430 \u0410\u043d\u0430\u0442\u043e\u043b\u044c\u0435\u0432\u043d\u0430)', 'location': '3/450', 'subject': u'\u041c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433'}, {'date': {'end': datetime.datetime(2013, 5, 20, 15, 55), 'start': datetime.datetime(2013, 5, 20, 14, 35)}, 'description': u'\u0417\u0430\u043d\u044f\u0442\u0438\u044f \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0430\u043d\u04331, \u0412\u0438\u0440\u0448\u0438\u0446 \u041d\u0430\u0442\u0430\u043b\u0438\u044f \u0418\u0432\u0430\u043d\u043e\u0432\u043d\u0430 - 2/313\n\u043f\u043e\u0434\u0433\u0440.\u0430\u043d\u04332, \u041a\u0438\u0440\u0438\u043b\u044c\u0447\u0438\u043a \u0422\u0430\u0442\u044c\u044f\u043d\u0430 \u041a\u0430\u0437\u0438\u043c\u0438\u0440\u043e\u0432\u043d\u0430 - 2/426', 'subject': u'16 \u0418\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a'}, {'date': {'end': datetime.datetime(2013, 5, 20, 19, 5), 'start': datetime.datetime(2013, 5, 20, 17, 45)}, 'description': u'\u0417\u0430\u043d\u044f\u0442\u0438\u044f \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0444\u0440\u043d, \u0421\u0430\u043b\u0443\u0449\u0435\u0432\u0430 \u0416\u0430\u043d\u043d\u0430 \u0418\u0432\u0430\u043d\u043e\u0432\u043d\u0430 - 2/417', 'subject': u'16 \u0418\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a'}, {'date': {'end': datetime.datetime(2013, 5, 21, 15, 55), 'start': datetime.datetime(2013, 5, 21, 14, 35)}, 'description': u'\u041b\u0435\u043a\u0446\u0438\u0438(\u041a\u043e\u043f\u0442\u0443\u0440 \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440\u043e\u0432\u0438\u0447)', 'location': u'\xa0', 'subject': u'\u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u0443\u043b\u044c\u0442\u0443\u0440\u0430'}, {'date': {'end': datetime.datetime(2013, 5, 21, 17, 25), 'start': datetime.datetime(2013, 5, 21, 16, 5)}, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '3/454', 'subject': u'\u0412\u044b\u0441\u0448\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430'}, {'date': {'end': datetime.datetime(2013, 5, 21, 19, 5), 'start': datetime.datetime(2013, 5, 21, 17, 45)}, 'description': u'\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0410, \u041f\u0443\u043d\u0447\u0438\u043a \u0417\u043e\u044f \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440\u043e\u0432\u043d\u0430 - 2/402\n\u043f\u043e\u0434\u0433\u0440.\u0411, \u041f\u0435\u0442\u043a\u0435\u0432\u0438\u0447 \u041c\u0430\u0440\u0438\u0430\u043d\u043d\u0430 \u0410\u043d\u0430\u0442\u043e\u043b\u044c\u0435\u0432\u043d\u0430 - 2/401', 'subject': u'16 \u041a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438'}, {'date': {'end': datetime.datetime(2013, 5, 22, 15, 55), 'start': datetime.datetime(2013, 5, 22, 14, 35)}, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '1/701', 'subject': u'\u041c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433'}, {'date': {'end': datetime.datetime(2013, 5, 22, 17, 25), 'start': datetime.datetime(2013, 5, 22, 16, 5)}, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '1/701', 'subject': u'\u0412\u044b\u0441\u0448\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430'}, {'date': {'end': datetime.datetime(2013, 5, 23, 11, 5), 'start': datetime.datetime(2013, 5, 23, 9, 45)}, 'description': u'\u041b\u0435\u043a\u0446\u0438\u0438', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440., \u041a\u043e\u043f\u0442\u0443\u0440 \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440\u043e\u0432\u0438\u0447 - \xa0', 'subject': u'16 \u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u0443\u043b\u044c\u0442\u0443\u0440\u0430'}, {'date': {'end': datetime.datetime(2013, 5, 23, 11, 5), 'start': datetime.datetime(2013, 5, 23, 9, 45)}, 'description': u'\u0417\u0430\u043d\u044f\u0442\u0438\u044f \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0440\u0443\u0441, \u0411\u043e\u0436\u043a\u043e\u0432\u0430 \u041c\u0430\u0440\u0438\u043d\u0430 \u0418\u0432\u0430\u043d\u043e\u0432\u043d\u0430 - 2/427\u0430', 'subject': u'16 \u0418\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a'}, {'date': {'end': datetime.datetime(2013, 5, 23, 12, 35), 'start': datetime.datetime(2013, 5, 23, 11, 15)}, 'description': u'\u0417\u0430\u043d\u044f\u0442\u0438\u044f \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0440\u0443\u0441, \u0411\u043e\u0436\u043a\u043e\u0432\u0430 \u041c\u0430\u0440\u0438\u043d\u0430 \u0418\u0432\u0430\u043d\u043e\u0432\u043d\u0430 - 2/427\u0430', 'subject': u'16 \u0418\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a'}, {'date': {'end': datetime.datetime(2013, 5, 23, 14, 25), 'start': datetime.datetime(2013, 5, 23, 13, 5)}, 'description': u'\u0421\u0435\u043c\u0438\u043d\u0430\u0440\u044b(\u0413\u0443\u0441\u0435\u0439\u043d\u043e\u0432\u0430 \u042d.\u041c.)', 'location': '3/226', 'subject': u'\u041c\u0438\u043a\u0440\u043e\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430'}, {'date': {'end': datetime.datetime(2013, 5, 23, 15, 55), 'start': datetime.datetime(2013, 5, 23, 14, 35)}, 'description': u'\u0417\u0430\u043d\u044f\u0442\u0438\u044f \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0430\u043d\u04331, \u0412\u0438\u0440\u0448\u0438\u0446 \u041d\u0430\u0442\u0430\u043b\u0438\u044f \u0418\u0432\u0430\u043d\u043e\u0432\u043d\u0430 - 3/440\n\u043f\u043e\u0434\u0433\u0440.\u0430\u043d\u04332, \u041a\u0438\u0440\u0438\u043b\u044c\u0447\u0438\u043a \u0422\u0430\u0442\u044c\u044f\u043d\u0430 \u041a\u0430\u0437\u0438\u043c\u0438\u0440\u043e\u0432\u043d\u0430 - 2/428', 'subject': u'16 \u0418\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a'}, {'date': {'end': datetime.datetime(2013, 5, 23, 19, 5), 'start': datetime.datetime(2013, 5, 23, 17, 45)}, 'description': u'\u0417\u0430\u043d\u044f\u0442\u0438\u044f \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0444\u0440\u043d, \u0421\u0430\u043b\u0443\u0449\u0435\u0432\u0430 \u0416\u0430\u043d\u043d\u0430 \u0418\u0432\u0430\u043d\u043e\u0432\u043d\u0430 - 3/429', 'subject': u'16 \u0418\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a'}]) self.assertEqual(read(open(os.path.join(self.data_dir, 'schedule_day_student2.htm')).read()), [{'date': {'end': datetime.datetime(2013, 5, 16, 15, 55), 'start': datetime.datetime(2013, 5, 16, 14, 35)}, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '4/301', 'subject': u'\u0424\u0438\u043d\u0430\u043d\u0441\u044b \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u044f\u0442\u0438\u0439'}, {'date': {'end': datetime.datetime(2013, 5, 16, 17, 25), 'start': datetime.datetime(2013, 5, 16, 16, 5)}, 'description': u'\u0421\u0435\u043c\u0438\u043d\u0430\u0440\u044b(\u041a\u043b\u0438\u043d\u043e\u0432\u0430 \u0415\u043a\u0430\u0442\u0435\u0440\u0438\u043d\u0430 \u0412\u0438\u043a\u0442\u043e\u0440\u043e\u0432\u043d\u0430)', 'location': '4/301', 'subject': u'\u041f\u043e\u043b\u0438\u0442\u043e\u043b\u043e\u0433\u0438\u044f'}, {'date': {'end': datetime.datetime(2013, 5, 16, 19, 5), 'start': datetime.datetime(2013, 5, 16, 17, 45)}, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '4/301', 'subject': u'\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430'}, {'date': {'end': datetime.datetime(2013, 5, 17, 15, 55), 'start': datetime.datetime(2013, 5, 17, 14, 35)}, 'description': u'\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0430, \u041f\u044b\u0442\u043b\u044f\u043a \u0412.\u0412 - 4/801', 'subject': u'15 \u0418\u043c\u0438\u0442\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0435 \u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435'}, {'date': {'end': datetime.datetime(2013, 5, 17, 17, 25), 'start': datetime.datetime(2013, 5, 17, 16, 5)}, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '4/606', 'subject': u'\u0421\u0438\u0441\u0442\u0435\u043c\u044b \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0430 \u0432 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0435'}, {'date': {'end': datetime.datetime(2013, 5, 18, 14, 25), 'start': datetime.datetime(2013, 5, 18, 13, 5)}, 'description': u'\u0421\u0435\u043c\u0438\u043d\u0430\u0440\u044b(\u041a\u043b\u0438\u043d\u043e\u0432\u0430 \u0415\u043a\u0430\u0442\u0435\u0440\u0438\u043d\u0430 \u0412\u0438\u043a\u0442\u043e\u0440\u043e\u0432\u043d\u0430)', 'location': '4/301', 'subject': u'\u041f\u043e\u043b\u0438\u0442\u043e\u043b\u043e\u0433\u0438\u044f'}, {'date': {'end': datetime.datetime(2013, 5, 18, 15, 55), 'start': datetime.datetime(2013, 5, 18, 14, 35)}, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '4/301', 'subject': u'\u0424\u0438\u043d\u0430\u043d\u0441\u044b \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u044f\u0442\u0438\u0439'}, {'date': {'end': datetime.datetime(2013, 5, 18, 17, 25), 'start': datetime.datetime(2013, 5, 18, 16, 5)}, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '4/301', 'subject': u'\u041e\u0441\u043d\u043e\u0432\u044b \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0441\u043a\u0438\u0439 \u0443\u0447\u0435\u0442'}, {'date': {'end': datetime.datetime(2013, 5, 20, 15, 55), 'start': datetime.datetime(2013, 5, 20, 14, 35)}, 'description': u'\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0430, \u0427\u0438\u0442\u0430\u044f \u0413\u0438\u0433\u043b\u0430 \u041e\u0442\u0430\u0440\u043e\u0432\u0438\u0447 - 4/602', 'subject': u'16 \u041c\u0435\u0442\u043e\u0434\u044b \u043c\u043d\u043e\u0433\u043e\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0435'}, {'date': {'end': datetime.datetime(2013, 5, 20, 15, 55), 'start': datetime.datetime(2013, 5, 20, 14, 35)}, 'description': u'\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0431, \u041a\u0440\u0443\u043f\u043e\u0434\u0435\u0440\u043e\u0432\u0430 \u0410\u043d\u043d\u0430 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u043e\u0432\u043d\u0430 - 2/200', 'subject': u'16 \u041e\u0441\u043d\u043e\u0432\u044b \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0441\u043a\u0438\u0439 \u0443\u0447\u0435\u0442'}, {'date': {'end': datetime.datetime(2013, 5, 20, 17, 25), 'start': datetime.datetime(2013, 5, 20, 16, 5)}, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '4/606', 'subject': u'\u041e\u0441\u043d\u043e\u0432\u044b \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0441\u043a\u0438\u0439 \u0443\u0447\u0435\u0442'}, {'date': {'end': datetime.datetime(2013, 5, 20, 19, 5), 'start': datetime.datetime(2013, 5, 20, 17, 45)}, 'description': u'\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0431, \u0427\u0438\u0442\u0430\u044f \u0413\u0438\u0433\u043b\u0430 \u041e\u0442\u0430\u0440\u043e\u0432\u0438\u0447 - 4/602', 'subject': u'16 \u041c\u0435\u0442\u043e\u0434\u044b \u043c\u043d\u043e\u0433\u043e\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0435'}, {'date': {'end': datetime.datetime(2013, 5, 20, 20, 35), 'start': datetime.datetime(2013, 5, 20, 19, 15)}, 'description': u'\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0430, \u041a\u0440\u0443\u043f\u043e\u0434\u0435\u0440\u043e\u0432\u0430 \u0410\u043d\u043d\u0430 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u043e\u0432\u043d\u0430 - 2/200', 'subject': u'16 \u041e\u0441\u043d\u043e\u0432\u044b \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0441\u043a\u0438\u0439 \u0443\u0447\u0435\u0442'}, {'date': {'end': datetime.datetime(2013, 5, 21, 15, 55), 'start': datetime.datetime(2013, 5, 21, 14, 35)}, 'description': u'\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0430, \u0411\u043e\u0440\u043e\u0434\u0438\u043d\u0430 \u0422\u0430\u0442\u044c\u044f\u043d\u0430 \u0410\u043d\u0430\u0442\u043e\u043b\u044c\u0435\u0432\u043d\u0430 - 4/602\n\u043f\u043e\u0434\u0433\u0440.\u0431, \u041f\u0430\u0440\u0430\u0449\u0435\u043d\u043a\u043e \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440 \u0412\u0438\u043a\u0442\u043e\u0440\u043e\u0432\u0438\u0447 - 7/8', 'subject': u'16 \u041c\u043e\u0434\u0435\u043b\u0438 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0434\u0435\u043b\u043e\u0432\u044b\u0435 \u0438\u0433\u0440\u044b \u0432 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u0432 \u0410\u041f\u041a, \u0432 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u043e\u0439 \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0432 \u043c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433\u0435 \u0438 \u043b\u043e\u0433\u0438\u0441\u0442\u0438\u043a\u0435'}, {'date': {'end': datetime.datetime(2013, 5, 21, 17, 25), 'start': datetime.datetime(2013, 5, 21, 16, 5)}, 'description': u'\u041b\u0435\u043a\u0446\u0438\u0438(\u041d\u0435\u0442\u0435\u0441\u0430 \u041b\u044e\u0434\u043c\u0438\u043b\u0430 \u0418\u0432\u0430\u043d\u043e\u0432\u043d\u0430)', 'location': '4/301', 'subject': u'\u041e\u0441\u043d\u043e\u0432\u044b \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0441\u043a\u0438\u0439 \u0443\u0447\u0435\u0442'}, {'date': {'end': datetime.datetime(2013, 5, 21, 19, 5), 'start': datetime.datetime(2013, 5, 21, 17, 45)}, 'description': u'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': '4/301', 'subject': u'\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430'}, {'date': {'end': datetime.datetime(2013, 5, 22, 15, 55), 'start': datetime.datetime(2013, 5, 22, 14, 35)}, 'description': u'\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0430, \u041a\u0440\u0443\u043f\u043e\u0434\u0435\u0440\u043e\u0432\u0430 \u0410\u043d\u043d\u0430 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u043e\u0432\u043d\u0430 - 2/200', 'subject': u'16 \u041e\u0441\u043d\u043e\u0432\u044b \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0441\u043a\u0438\u0439 \u0443\u0447\u0435\u0442'}, {'date': {'end': datetime.datetime(2013, 5, 22, 15, 55), 'start': datetime.datetime(2013, 5, 22, 14, 35)}, 'description': u'\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0431, \u041f\u044b\u0442\u043b\u044f\u043a \u0412.\u0412 - 4/801', 'subject': u'16 \u0421\u0438\u0441\u0442\u0435\u043c\u044b \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0430 \u0432 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0435'}, {'date': {'end': datetime.datetime(2013, 5, 22, 17, 25), 'start': datetime.datetime(2013, 5, 22, 16, 5)}, 'description': u'\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u044f', 'location': u'\xa0\n\u043f\u043e\u0434\u0433\u0440.\u0430, \u041f\u044b\u0442\u043b\u044f\u043a \u0412.\u0412 - 4/801', 'subject': u'16 \u0421\u0438\u0441\u0442\u0435\u043c\u044b \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0430 \u0432 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0435'}, {'date': {'end': datetime.datetime(2013, 5, 22, 19, 5), 'start': datetime.datetime(2013, 5, 22, 17, 45)}, 'description': u'\u041b\u0435\u043a\u0446\u0438\u0438(\u041b\u0430\u0437\u0435\u0431\u043d\u0438\u043a \u042e\u0440\u0438\u0439 \u0412\u0438\u043a\u0442\u043e\u0440\u043e\u0432\u0438\u0447)', 'location': '4/905', 'subject': u'\u041a\u043e\u0440\u0440\u0443\u043f\u0446\u0438\u044f \u0438 \u0435\u0435 \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c'}] )