저는 Python으로 작성된 명령 줄 응용 프로그램을 작성하고 있습니다. 각 프로필에 적용 할 몇 가지 다른 값이있는 프로필 아이디어를 사용하고 싶습니다.명령 줄 응용 프로그램의 응용 프로그램 컨텍스트에있는 변수
나는 이것을 수행하여 properties.ini
파일을 만들고 프로필을 수신하고 일부 변수에 속성을로드하는 기능을 포함하는 config_parser.py
파일을 만듭니다. 그런 다음 사용하기 위해 필요한 모든 파일에서이 파일을 가져옵니다.
응용 프로그램을 실행할 때 프로필을 인수로 전달하고 올바른 속성을로드하여 전체 응용 프로그램의 컨텍스트에 넣고 import config_parser
을 피하십시오.
예를 들어, 내 properties.ini
에 나는이 다음 config_parser.py
에서
[DEFAULT]
[email protected]
[e2e_testing]
[email protected]
내가 가진 :
import configparser
config = configparser.ConfigParser()
config.read('properties.ini')
GLOBAL_EMAIL = ''
def load_config(profile):
global GLOBAL_EMAIL
GLOBAL_EMAIL = config[profile]['GLOBAL_EMAIL']
을 그리고 모든 스크립트 나 속성을 사용할 필요가 나는 수행
from application import config_parser as CFG
def method(profile):
CFG.load_config(profile)
print CFG.GLOBAL_EMAIL
이상적으로이 구성을 실행 중에로드하고 싶습니다. main.py
(내 응용 프로그램의 진입 점)을 작성한 다음 패키지 전체에서 모듈을 공유하므로 어디서나 config_parser
을 가져 오거나 profile
변수를 전달할 필요가 없습니다.
__builtin__
를 읽고
config_parser
이
__builtin__
에 변수를 추가 (그래서 그들은 그 패키지의 모든 모듈에 사용할 수있을 것입니다) 만드는 방법에 대한 생각,하지만 난
__builtin__
이후 어떻게 Pytest와 단위 테스트에 확실하지 않다 것이다 소스 폴더에있는 모듈에서만 사용할 수 있어야하며 어떻게 든 모의해야합니다.
미리 감사드립니다.
config를 main.py에서 한 번 분석하고 그 결과를 모든 모듈에 전달하는 것은 어떻습니까? – ThisSuitIsBlackNot