Skip to content

Commit 186070c

Browse files
committed
Add a few tests for lesson start/end times
1 parent 7063fcb commit 186070c

File tree

4 files changed

+70
-0
lines changed

4 files changed

+70
-0
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
title: A plain vanilla course
2+
3+
plan:
4+
- title: A normal lesson
5+
slug: normal-lesson
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
title: Test run with scheduled times
2+
default_time:
3+
start: '19:00'
4+
end: '21:00'
5+
6+
plan:
7+
- title: A normal lesson
8+
slug: normal-lesson
9+
date: 2000-01-01
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
title: Test run without scheduled times
2+
3+
plan:
4+
- title: A normal lesson
5+
slug: normal-lesson
6+
date: 2000-01-01

test_naucse/test_session_times.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import datetime
2+
from pathlib import Path
3+
4+
import pytest
5+
import dateutil
6+
7+
from naucse import models
8+
9+
10+
TZINFO = dateutil.tz.gettz('Europe/Prague')
11+
12+
@pytest.fixture
13+
def model():
14+
path = Path(__file__).parent / 'fixtures/test_content'
15+
return models.Root(path)
16+
17+
18+
def test_run_with_times(model):
19+
run = model.runs[2000, 'run-with-times']
20+
assert run.default_start_time == datetime.time(19, 00, tzinfo=TZINFO)
21+
assert run.default_end_time == datetime.time(21, 00, tzinfo=TZINFO)
22+
23+
lesson = run.sessions['normal-lesson']
24+
assert lesson.date == datetime.date(2000, 1, 1)
25+
assert lesson.start_time == datetime.datetime(2000, 1, 1, 19, 00,
26+
tzinfo=TZINFO)
27+
assert lesson.end_time == datetime.datetime(2000, 1, 1, 21, 00,
28+
tzinfo=TZINFO)
29+
30+
31+
def test_run_without_times(model):
32+
run = model.runs[2000, 'run-without-times']
33+
assert run.default_start_time is None
34+
assert run.default_end_time is None
35+
36+
lesson = run.sessions['normal-lesson']
37+
assert lesson.date == datetime.date(2000, 1, 1)
38+
assert lesson.start_time is None
39+
assert lesson.end_time is None
40+
41+
42+
def test_course(model):
43+
course = model.courses['normal-course']
44+
assert course.default_start_time is None
45+
assert course.default_end_time is None
46+
47+
lesson = course.sessions['normal-lesson']
48+
assert lesson.date is None
49+
assert lesson.start_time is None
50+
assert lesson.end_time is None

0 commit comments

Comments
 (0)