메시지 큐로 작성한 간단한 pub/sub 모듈을 사용하는 구성 요소가 있습니다. 나는 RabbitMQ와 같은 다른 구현을 시도하고 싶다. 그러나이 백엔드 변경을 구성 가능하게 만들고 구현 및 타사 모듈간에 청결과 테스트를 전환 할 수 있습니다.파이썬 응용 프로그램에서 구성 요소를 혼합하고 일치시키는 가장 좋은 방법
확실한 대답을 것 같다 :
- 이 설정 파일
- 을 읽고 수정 가능한 설정이 느리게 지정된 구현을로드 할 대상 구성 요소를 수정/DICT
- 객체를 생성합니다.
뭔가 같은 : 초기화가 큐 클래스에서해야
# component.py
from test.queues import Queue
class Component:
def __init__(self, Queue=Queue):
self.queue = Queue()
def publish(self, message):
self.queue.publish(message)
# queues.py
import test.settings as settings
def Queue(*args, **kwargs):
klass = settings.get('queue')
return klass(*args, **kwargs)
확실하지 경우, 나는 그것을에서 쉽게 테스트하는 동안 사용되는 큐를 지정 도움이 될 그림.
내가 가지고 있었던 또 다른 생각은 http://www.voidspace.org.uk/python/mock/patch.html와 같았다. 그러나 그것은 그것이 더러워 질 것 인 것처럼 느껴진다. Upside는 스와핑 구성 요소를 지원하도록 코드를 수정할 필요가 없다는 것입니다.
다른 아이디어 나 일화는 인정 될 것입니다.
편집 : 들여 쓰기가 고정되어 있습니다.
코드의 들여 쓰기를 수정하십시오. – unholysampler