def setUp(self): super(SubdomainMiddlewareTestCase, self).setUp() self.middleware = SubdomainMiddleware()
class SubdomainMiddlewareTestCase(SubdomainTestMixin, TestCase): def setUp(self): super(SubdomainMiddlewareTestCase, self).setUp() self.middleware = SubdomainMiddleware() def test_subdomain_attribute(self): def subdomain(subdomain): """ Returns the subdomain associated with the request by the middleware for the given subdomain. """ host = self.get_host_for_subdomain(subdomain) request = RequestFactory().get('/', HTTP_HOST=host) self.middleware.process_request(request) return request.subdomain self.assertEqual(subdomain(None), None) self.assertEqual(subdomain('www'), 'www') self.assertEqual(subdomain('www.subdomain'), 'www.subdomain') self.assertEqual(subdomain('subdomain'), 'subdomain') self.assertEqual(subdomain('another.subdomain'), 'another.subdomain') def test_www_domain(self): def host(host): """ Returns the subdomain for the provided HTTP Host. """ request = RequestFactory().get('/', HTTP_HOST=host) self.middleware.process_request(request) return request.subdomain self.site.domain = 'www.%s' % self.DOMAIN self.site.save() with override_settings(REMOVE_WWW_FROM_DOMAIN=False): self.assertEqual(host('www.%s' % self.DOMAIN), None) # Squelch the subdomain warning for cleaner test output, since we # already know that this is an invalid subdomain. with warnings.catch_warnings(record=True) as warnlist: self.assertEqual(host('www.subdomain.%s' % self.DOMAIN), None) self.assertEqual(host('subdomain.%s' % self.DOMAIN), None) # Trick pyflakes into not warning us about variable usage. del warnlist self.assertEqual(host('subdomain.www.%s' % self.DOMAIN), 'subdomain') self.assertEqual(host('www.subdomain.www.%s' % self.DOMAIN), 'www.subdomain') with override_settings(REMOVE_WWW_FROM_DOMAIN=True): self.assertEqual(host('www.%s' % self.DOMAIN), 'www') self.assertEqual(host('subdomain.%s' % self.DOMAIN), 'subdomain') self.assertEqual(host('subdomain.www.%s' % self.DOMAIN), 'subdomain.www') def test_case_insensitive_subdomain(self): host = 'WWW.%s' % self.DOMAIN request = RequestFactory().get('/', HTTP_HOST=host) self.middleware.process_request(request) self.assertEqual(request.subdomain, 'www') host = 'www.%s' % self.DOMAIN.upper() request = RequestFactory().get('/', HTTP_HOST=host) self.middleware.process_request(request) self.assertEqual(request.subdomain, 'www')
def setUp(self): self.site = Site.objects.get_current() self.middleware = SubdomainMiddleware()
class SubdomainMiddlewareTestCase(TestCase): def setUp(self): self.site = Site.objects.get_current() self.middleware = SubdomainMiddleware() def test_subdomain_attribute(self): def subdomain(subdomain): """ Returns the request.subdomain for the provided subdomain. """ if subdomain is not None: host = '%s.%s' % (subdomain, self.site.domain) else: host = '%s' % self.site.domain request = RequestFactory().get('/', HTTP_HOST=host) self.middleware.process_request(request) return request.subdomain self.assertEqual(subdomain(None), None) self.assertEqual(subdomain('www'), 'www') self.assertEqual(subdomain('www.subdomain'), 'www.subdomain') self.assertEqual(subdomain('subdomain'), 'subdomain') self.assertEqual(subdomain('another.subdomain'), 'another.subdomain') def test_www_domain(self): def host(host): """ Returns the subdomain for the provided HTTP Host. """ request = RequestFactory().get('/', HTTP_HOST=host) self.middleware.process_request(request) return request.subdomain self.site.domain = 'www.example.com' self.site.save() with self.settings(REMOVE_WWW_FROM_DOMAIN=False): self.assertEqual(host('www.example.com'), None) # Squelch the subdomain warning for cleaner test output, since we # already know that this is an invalid subdomain. with warnings.catch_warnings(record=True) as warnlist: self.assertEqual(host('www.subdomain.example.com'), None) self.assertEqual(host('subdomain.example.com'), None) # Trick pyflakes into not warning us about variable usage. del warnlist self.assertEqual(host('subdomain.www.example.com'), 'subdomain') self.assertEqual(host('www.subdomain.www.example.com'), 'www.subdomain') with self.settings(REMOVE_WWW_FROM_DOMAIN=True): self.assertEqual(host('www.example.com'), 'www') self.assertEqual(host('subdomain.example.com'), 'subdomain') self.assertEqual(host('subdomain.www.example.com'), 'subdomain.www') def test_case_insensitive_subdomain(self): host = 'WWW.example.com' request = RequestFactory().get('/', HTTP_HOST=host) self.middleware.process_request(request) self.assertEqual(request.subdomain, 'www') host = 'www.EXAMPLE.com' request = RequestFactory().get('/', HTTP_HOST=host) self.middleware.process_request(request) self.assertEqual(request.subdomain, 'www')