Skip to content

Commit

Permalink
Calendar.create 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
qodot committed Sep 16, 2023
1 parent 25209f9 commit 4c647e4
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 2 deletions.
40 changes: 39 additions & 1 deletion src/domain/entity/calendar.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,50 @@ class Calendar:
lifespan: int
years: list[Year]

def __init__(
self,
*,
id: uuid.UUID,
name: str,
birthday: datetime.date,
lifespan: int,
years: list[Year],
) -> None:
self.id = id
self.name = name
self.birthday = birthday
self.lifespan = lifespan
self.years = years

@classmethod
def create(cls, name: str, birthday: datetime.date, lifespan: int) -> Calendar:
return cls(
id=uuid.uuid4(),
name=name,
birthday=birthday,
lifespan=lifespan,
years=[
Year(yearnum=yearnum)
for yearnum in range(birthday.year, birthday.year + lifespan + 1)
],
)


class Year:
yearnum: int
weeks: list[Week]

def __init__(self, *, yearnum: int) -> None:
self.yearnum = yearnum
self.weeks = [
Week(yearnum=yearnum, weeknum=weeknum) for weeknum in range(1, 53)
]


class Week:
yearnum: int
weeknum: int
weeknum: int

def __init__(self, *, yearnum: int, weeknum: int) -> None:
self.yearnum = yearnum
self.weeknum = weeknum
Empty file added test/__init__.py
Empty file.
Empty file added test/domain/__init__.py
Empty file.
Empty file added test/domain/entity/__init__.py
Empty file.
17 changes: 16 additions & 1 deletion test/domain/entity/test_calendar.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,17 @@
import datetime

from src.domain.entity.calendar import Calendar


class TestCalendar:
pass
def test_create(self):
name = "고도"
birthday = datetime.date(1988, 6, 21)
lifespan = 80
calendar = Calendar.create(name, birthday, lifespan)

assert calendar.name == name
assert calendar.birthday == birthday
assert calendar.lifespan == lifespan
assert len(calendar.years) == lifespan + 1
assert len(calendar.years[0].weeks) == 52

0 comments on commit 4c647e4

Please sign in to comment.