私はdjangoを使って作業しており、ミドルウェアファイルの単体テストケースを作成できる立場にあり、クライアントを使用してレスポンスオブジェクトをチェックすることができるため、ビューは簡単でした。しかし、これはややこしくなってきました。これらの2つの条件文のテストケースを作成するにはどうすればよいですか。ミドルウェアのためのテストケースを作成する方法を確認しながらこのミドルウェアファイルdjangoのための適切なユニットテストケースを書くには?
def process_request(self, request):
connection.set_schema_to_public()
hostname = self.hostname_from_request(request)
if hostname == settings.MAIN_SITE_HOST_NAME:
return None
elif hostname == 'tenant.test.com':
request.tenant = request.institute = Institute.objects.get(
domain_url=hostname, schema_name='test')
connection.set_tenant(request.tenant)
return None
が
def hostname_from_request(self, request):
""" Extracts hostname from request. Used for custom requests filtering.
By default removes the request's port and common prefixes.
"""
domain_parts = request.get_host().split('.')
if len(domain_parts) > 3:
return remove_www(request.get_host().split(':')[0])
else:
return (request.get_host().split(':')[0])
、あまりにもhost_name_from_request方法を添付した、私はthis siteを見つけましたが、私はまだ私の場合はそれについて移動する方法について確認していません。
私はこの
def test_from_client(self):
self.middleware = InstituteMiddleWare()
self.request = Mock()
self.request.path('/')
self.assertIsNone(self.middleware.process_request(self.request))
のようなものを試してみましたが、それはモックオブジェクトは、属性がdjango.testからRequestFactoryクラスを使用してみてください