예제 #1
0
파일: main.py 프로젝트: psnj/nowhere-bike
 def get(self, program_id=None):
     program = Program.get_by_id(int(program_id))
     rendered = parse.flatten(parse.parse_workout(program.program_code))
     template_values = {
         'json': rendered
     }
     template = template_file('program_run.html')
     self.response.out.write(template.render(template_values))
예제 #2
0
    def test_parse_workout(self):
        r = parse.parse_workout("""
- 10m easy warmup
- 5x:
  - 1m gear up
  - 1m gear even further up
  - 2x:
    - 15s insane
    - 15s slow
- 10m cool down
        """)
        self.assertEquals(
            r,
            [{'d1': 'easy warmup', 'd2': '', 'dur': 600},
             (('REPEAT', 5),
              [{'d1': 'gear up', 'd2': '', 'dur': 60},
               {'d1': 'gear even further up', 'd2': '', 'dur': 60},
              (('REPEAT', 2),
               [{'d1': 'insane', 'd2': '', 'dur': 15},
                {'d1': 'slow', 'd2': '', 'dur': 15}])]),
            {'d1': 'cool down', 'd2': '', 'dur': 600}])
        flt = parse.flatten(r)
        self.assertEquals(
            flt,
            [{'d1': 'easy warmup', 'd2': '', 'dur': 600, 'index': 0, 'level': 0},
             {'d1': 'gear up', 'd2': '', 'dur': 60, 'index': 600, 'level': 1},
            {'d1': 'gear even further up', 'd2': '', 'dur': 60, 'index': 660, 'level': 1},
            {'d1': 'insane', 'd2': '', 'dur': 15, 'index': 720, 'level': 2},
            {'d1': 'slow', 'd2': '', 'dur': 15, 'index': 735, 'level': 2},
            {'d1': 'insane', 'd2': '', 'dur': 15, 'index': 750, 'level': 2},
            {'d1': 'slow', 'd2': '', 'dur': 15, 'index': 765, 'level': 2},
            {'d1': 'gear up', 'd2': '', 'dur': 60, 'index': 780, 'level': 1},
            {'d1': 'gear even further up', 'd2': '', 'dur': 60, 'index': 840, 'level': 1},
            {'d1': 'insane', 'd2': '', 'dur': 15, 'index': 900, 'level': 2},
            {'d1': 'slow', 'd2': '', 'dur': 15, 'index': 915, 'level': 2},
            {'d1': 'insane', 'd2': '', 'dur': 15, 'index': 930, 'level': 2},
            {'d1': 'slow', 'd2': '', 'dur': 15, 'index': 945, 'level': 2},
            {'d1': 'gear up', 'd2': '', 'dur': 60, 'index': 960, 'level': 1},
            {'d1': 'gear even further up',
             'd2': '',
             'dur': 60,
             'index': 1020,
            'level': 1},
            {'d1': 'insane', 'd2': '', 'dur': 15, 'index': 1080, 'level': 2},
            {'d1': 'slow', 'd2': '', 'dur': 15, 'index': 1095, 'level': 2},
            {'d1': 'insane', 'd2': '', 'dur': 15, 'index': 1110, 'level': 2},
            {'d1': 'slow', 'd2': '', 'dur': 15, 'index': 1125, 'level': 2},
            {'d1': 'gear up', 'd2': '', 'dur': 60, 'index': 1140, 'level': 1},
            {'d1': 'gear even further up',
             'd2': '',
             'dur': 60,
             'index': 1200,
            'level': 1},
            {'d1': 'insane', 'd2': '', 'dur': 15, 'index': 1260, 'level': 2},
            {'d1': 'slow', 'd2': '', 'dur': 15, 'index': 1275, 'level': 2},
            {'d1': 'insane', 'd2': '', 'dur': 15, 'index': 1290, 'level': 2},
            {'d1': 'slow', 'd2': '', 'dur': 15, 'index': 1305, 'level': 2},
            {'d1': 'gear up', 'd2': '', 'dur': 60, 'index': 1320, 'level': 1},
            {'d1': 'gear even further up',
             'd2': '',
             'dur': 60,
             'index': 1380,
            'level': 1},
            {'d1': 'insane', 'd2': '', 'dur': 15, 'index': 1440, 'level': 2},
            {'d1': 'slow', 'd2': '', 'dur': 15, 'index': 1455, 'level': 2},
            {'d1': 'insane', 'd2': '', 'dur': 15, 'index': 1470, 'level': 2},
            {'d1': 'slow', 'd2': '', 'dur': 15, 'index': 1485, 'level': 2},
            {'d1': 'cool down', 'd2': '', 'dur': 600, 'index': 1500, 'level': 0}])