Skip to content

Commit

Permalink
修复(test):恢复旧作息时间的记录以维护测试
Browse files Browse the repository at this point in the history
  • Loading branch information
zombie110year committed Sep 1, 2020
1 parent cfeb58a commit 8613fe2
Show file tree
Hide file tree
Showing 4 changed files with 80 additions and 21 deletions.
81 changes: 77 additions & 4 deletions cli_cqu/data/schedule.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,16 @@
from datetime import timedelta
from typing import Tuple

__all__ = ("New2020Schedule",)
__all__ = ("New2020Schedule", )


class Schedule:
"作息时间"

@abstractmethod
def get(self, index: int,
default: Tuple[timedelta,
timedelta]) -> Tuple[timedelta, timedelta]:
def get(
self, index: int, default: Tuple[timedelta, timedelta]
) -> Tuple[timedelta, timedelta]:
...

@abstractclassmethod
Expand Down Expand Up @@ -57,3 +57,76 @@ def get(
return cls.__MAP__[index]
else:
return default


class HuxiSchedule(Schedule):
"""重庆大学虎溪校区作息时间
节次 :(开始时间,结束时间)
"""
__MAP__ = {
1: (timedelta(hours=8, minutes=30), timedelta(hours=9, minutes=15)),
2: (timedelta(hours=9, minutes=25), timedelta(hours=10, minutes=10)),
3: (timedelta(hours=10, minutes=30), timedelta(hours=11, minutes=15)),
4: (timedelta(hours=11, minutes=25), timedelta(hours=12, minutes=10)),
5: (timedelta(hours=14), timedelta(hours=14, minutes=45)),
6: (timedelta(hours=14, minutes=55), timedelta(hours=15, minutes=40)),
7: (timedelta(hours=16), timedelta(hours=16, minutes=45)),
8: (timedelta(hours=16, minutes=55), timedelta(hours=17, minutes=40)),
9: (timedelta(hours=19), timedelta(hours=19, minutes=45)),
10: (timedelta(hours=19, minutes=55), timedelta(hours=20, minutes=40)),
11: (timedelta(hours=20, minutes=50), timedelta(hours=21, minutes=35)),
12: (timedelta(hours=21, minutes=35), timedelta(hours=23, minutes=59)),
}

def __getitem__(self, index: int) -> Tuple[timedelta, timedelta]:
return self.get(index)

@classmethod
def get(
cls,
index: int,
default=(timedelta(hours=8, minutes=30), timedelta(hours=23,
minutes=59))
) -> Tuple[timedelta, timedelta]:
"获取指定节次的开始、结束时间,节次在 1-12 范围之内"
if 1 <= index <= 12:
return cls.__MAP__[index]
else:
return default


class ShaPingBaSchedule(Schedule):
"""沙坪坝校区作息时间
节次 :(开始时间,结束时间)
"""
__MAP__ = {
1: (timedelta(hours=8), timedelta(hours=8, minutes=45)),
2: (timedelta(hours=8, minutes=55), timedelta(hours=9, minutes=40)),
3: (timedelta(hours=10, minutes=10), timedelta(hours=10, minutes=55)),
4: (timedelta(hours=11, minutes=5), timedelta(hours=11, minutes=50)),
5: (timedelta(hours=14, minutes=30), timedelta(hours=15, minutes=15)),
6: (timedelta(hours=15, minutes=25), timedelta(hours=16, minutes=10)),
7: (timedelta(hours=16, minutes=40), timedelta(hours=17, minutes=25)),
8: (timedelta(hours=17, minutes=35), timedelta(hours=18, minutes=20)),
9: (timedelta(hours=19, minutes=30), timedelta(hours=20, minutes=15)),
10: (timedelta(hours=20, minutes=25), timedelta(hours=21, minutes=10)),
11: (timedelta(hours=21, minutes=20), timedelta(hours=22, minutes=5)),
12: (timedelta(hours=22, minutes=5), timedelta(hours=23, minutes=59)),
}

def __getitem__(self, index: int) -> Tuple[timedelta, timedelta]:
return self.get(index)

@classmethod
def get(
cls,
index: int,
default=(timedelta(hours=8), timedelta(hours=23, minutes=59))
) -> Tuple[timedelta, timedelta]:
"获取指定节次的开始、结束时间,节次在 1-12 范围之内"
if 1 <= index <= 12:
return cls.__MAP__[index]
else:
return default
15 changes: 0 additions & 15 deletions example/download_courses_table.py

This file was deleted.

2 changes: 1 addition & 1 deletion tests/test_cli_cqu.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@


def test_version():
assert __version__ == '0.4.1'
assert __version__ == '0.5.0'
3 changes: 2 additions & 1 deletion tests/test_datetime.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from datetime import date
from datetime import timezone, timedelta
from cli_cqu.util.datetime import materialize_calendar
from cli_cqu.data.schedule import ShaPingBaSchedule
from typing import Tuple
START = "2020-02-17"

Expand Down Expand Up @@ -33,4 +34,4 @@ def dt(*args):
("2", "二[14节]", (dt(2020, 2, 25, 8), dt(2020, 2, 25, 23, 59))),
])
def test_materialize_calendar(tw: str, tl: str, ex: Tuple[dt, dt]):
assert ex == materialize_calendar(tw, tl, start=date(2020, 2, 17))
assert ex == materialize_calendar(tw, tl, start=date(2020, 2, 17), schedule=ShaPingBaSchedule())

0 comments on commit 8613fe2

Please sign in to comment.