Manager Init Location

Task Manager들 선언 위치

Application 의 작업을 담당하는 Manager들은 api를 작성하는 views디렉토리의 init.py에 위치해 있습니다. view 의 api method에서 Manager를 이용해 작업을 처리하기 때문에 global variable 형태로 저장되어 있습니다.

# Global Variable 불러오기
""" global variables """
import datetime

import django.db.utils
from django.db import OperationalError

from module.manager.share_manager import ShareManager
from module.specification.System_config import SystemConfig
from module.manager.user_manager import UserManager
from module.manager.storage_manager import StorageManager
from module.manager.token_manager import TokenManager


SYSTEM_CONFIG: SystemConfig
USER_MANAGER: UserManager
STORAGE_MANAGER: StorageManager
TOKEN_MANAGER: TokenManager
SHARE_MANAGER: ShareManager

try:
    SYSTEM_CONFIG = SystemConfig("server/config.json")
    USER_MANAGER = UserManager(SYSTEM_CONFIG)
    STORAGE_MANAGER = StorageManager(SYSTEM_CONFIG)
    TOKEN_MANAGER = TokenManager(SYSTEM_CONFIG, 1200)
    SHARE_MANAGER = ShareManager(SYSTEM_CONFIG, datetime.timedelta(days=7))


except (OperationalError, django.db.utils.ProgrammingError) as e:
    # 정상적인 Migration을 수행하기 위해 일부러  pass
    pass
  • line 29: OperationalError, django.db.utils.ProgrammingError 에러가 발생했을 경우, 에러 호출 및 기타 작업이 아닌 pass로 처리되어 있습니다. 그 이유는 Unittest 및 migration을 진행할 때, Database에 model에 해당하는 table이 존재하지 않아 발생하는 에러를 suppress 함으로써 정상적인 테스트 진행을 하기 위함입니다.

Last updated