멀티 테넌트 시스템을 설정했습니다. RabbitMQ가있는 셀러리가 준비되었습니다. 모델의 사전 저장 신호에서 전자 메일을 트리거하는 시스템이 있습니다. 시험은 벌금을 실행하고 심지어 메일 기능을 통해 taversing됩니다셀러리 작업 테스트
class BaseSetup(TenantTestCase):
def setup_tenant(self, tenant):
"""
Add any additional setting to the tenant before it get saved. This is required if you have
required fields.
"""
user = User.objects.create(email="[email protected]", is_active=True)
user.set_password('dummy')
tenant.owner = user
user.save()
def setUp(self):
self.sync_shared()
tenant_model = get_tenant_model()
app.conf.update(CELERY_ALWAYS_EAGER=True)
app.conf.update(CELERY_EAGER_PROPAGATES_EXCEPTIONS=True)
print app.conf.CELERY_ALWAYS_EAGER
test_schema_name = self.get_test_schema_name()
test_tenant_domain_name = self.get_test_tenant_domain()
self.tenant = tenant_model.objects.filter(schema_name=test_schema_name).first()
self.c = TenantClient(self.tenant)
def test_core_student_put_api(self):
response = self.c.post('http://test.localhost:8000/login/',{'email':'[email protected]','password':'dummy'})
response_add_student=self.c.post('http://test.localhost:8000/student_admin/',{'email':'[email protected]','stu_number':'100','role':'STUDENT'},**{'HTTP_AUTHORIZATION':'JWT '+response.data['token']})
self.assertEqual(response_put_employee.status_code, 201)
: 이것에 대한
@receiver(pre_save, sender=Student)
def invite_stu(sender, instance, **kwargs):
user_email = instance.email
subject = 'dummy'
message = ''
html_message = 'dummy'
from_email = my email id
to_list = [user_email]
send_html_mail(subject, message, html_message, settings.DEFAULT_FROM_EMAIL, to_list)
# super(Employee, self).save()
return instance
내가 테스트 케이스를 쓰고 있어요 : 다음은 코드입니다. 그러나 셀러리는 테스트를 통해 메일을 보내면 메일을 보내고 보내지 않지만, API를 통해 학생을 추가하면 이메일을 보냅니다.
어떤 방법 으로든이 작업을 할 수 있습니까? 감사!