class TestGetRegion(TestCase): fixtures = fixture('user_2519', 'webapp_337141') def setUp(self): self.resource = SearchView() self.factory = RequestFactory() self.profile = UserProfile.objects.get(pk=2519) self.user = self.profile def region_for(self, region): req = self.factory.get('/', ({} if region is None else { 'region': region })) req.API = True req.LANG = '' req.user = self.user req.amo_user = self.profile RegionMiddleware().process_request(req) ACLMiddleware().process_request(req) return self.resource.get_region_from_request(req) @patch('mkt.regions.middleware.RegionMiddleware.region_from_request') def test_get_region_all(self, mock_request_region): geoip_fallback = regions.PE # Different than the default (restofworld). mock_request_region.return_value = geoip_fallback # Test string values (should return region with that slug). eq_(self.region_for('restofworld'), regions.RESTOFWORLD) eq_(self.region_for('us'), regions.US) # Test fallback to request.REGION (should return GeoIP region if region # isn't specified or is specified and empty). eq_(self.region_for(None), geoip_fallback) eq_(self.region_for(''), geoip_fallback) # Test fallback to restofworld (e.g. if GeoIP fails). with patch('mkt.regions.middleware.RegionMiddleware.' 'process_request') as mock_process_request: eq_(self.region_for(None), regions.RESTOFWORLD) ok_(mock_process_request.called) def test_get_region_none(self): eq_(self.region_for('None'), None) def test_get_region_worldwide(self): eq_(self.region_for('worldwide'), regions.RESTOFWORLD)
class TestGetRegion(TestCase): fixtures = fixture('user_2519', 'webapp_337141') def setUp(self): self.resource = SearchView() self.factory = RequestFactory() self.profile = UserProfile.objects.get(pk=2519) self.user = self.profile def region_for(self, region): req = self.factory.get('/', ({} if region is None else {'region': region})) req.API = True req.LANG = '' req.user = self.user req.amo_user = self.profile RegionMiddleware().process_request(req) ACLMiddleware().process_request(req) return self.resource.get_region_from_request(req) @patch('mkt.regions.middleware.RegionMiddleware.region_from_request') def test_get_region_all(self, mock_request_region): geoip_fallback = regions.PE # Different than the default (restofworld). mock_request_region.return_value = geoip_fallback # Test string values (should return region with that slug). eq_(self.region_for('restofworld'), regions.RESTOFWORLD) eq_(self.region_for('us'), regions.US) # Test fallback to request.REGION (should return GeoIP region if region # isn't specified or is specified and empty). eq_(self.region_for(None), geoip_fallback) eq_(self.region_for(''), geoip_fallback) # Test fallback to restofworld (e.g. if GeoIP fails). with patch('mkt.regions.middleware.RegionMiddleware.' 'process_request') as mock_process_request: eq_(self.region_for(None), regions.RESTOFWORLD) ok_(mock_process_request.called) def test_get_region_none(self): eq_(self.region_for('None'), None) def test_get_region_worldwide(self): eq_(self.region_for('worldwide'), regions.RESTOFWORLD)
class TestGetRegion(TestCase): fixtures = fixture('user_2519', 'webapp_337141') def setUp(self): self.resource = SearchView() self.factory = RequestFactory() self.profile = UserProfile.objects.get(pk=2519) self.user = self.profile self.api_version = 1 def region_for(self, region): req = self.factory.get('/', ({} if region is None else {'region': region})) req.API = True req.API_VERSION = self.api_version req.LANG = '' req.user = self.user req.user = self.profile RegionMiddleware().process_request(req) ACLMiddleware().process_request(req) return self.resource.get_region_from_request(req) @patch('mkt.regions.middleware.RegionMiddleware.region_from_request') def test_get_region_all_v1(self, mock_request_region): geoip_fallback = regions.PE # Different than the default: restofworld. mock_request_region.return_value = geoip_fallback # Test string values (should return region with that slug). eq_(self.region_for('restofworld'), regions.RESTOFWORLD) ok_(not mock_request_region.called) eq_(self.region_for('us'), regions.US) ok_(not mock_request_region.called) # Test fallback to request.REGION (should return GeoIP region if region # isn't specified or is specified and empty). eq_(self.region_for(None), geoip_fallback) eq_(mock_request_region.call_count, 1) eq_(self.region_for(''), geoip_fallback) eq_(mock_request_region.call_count, 2) # Test fallback to restofworld (e.g. if GeoIP fails). with patch('mkt.regions.middleware.RegionMiddleware.' 'process_request') as mock_process_request: eq_(self.region_for(None), regions.RESTOFWORLD) ok_(mock_process_request.called) @patch('mkt.regions.middleware.RegionMiddleware.region_from_request') def test_get_region_all_v2(self, mock_request_region): geoip_fallback = regions.PE # Different than the default: restofworld. mock_request_region.return_value = geoip_fallback self.api_version = 2 # Test string values (should return region with that slug). eq_(self.region_for('restofworld'), regions.RESTOFWORLD) ok_(not mock_request_region.called) eq_(self.region_for('us'), regions.US) ok_(not mock_request_region.called) # Test fallback to request.REGION. We are using api v2, so we shouldn't # fall back on GeoIP and simply use RESTOFWORLD. eq_(self.region_for(None), regions.RESTOFWORLD) ok_(not mock_request_region.called) eq_(self.region_for(''), regions.RESTOFWORLD) ok_(not mock_request_region.called) def test_get_region_none(self): # When the client explicity requested `region=None` in the query string # we should not have a region set at all, not even restofworld. eq_(self.region_for('None'), None) def test_get_region_worldwide(self): eq_(self.region_for('worldwide'), regions.RESTOFWORLD)
class TestGetRegion(TestCase): fixtures = fixture('user_2519', 'webapp_337141') def setUp(self): self.resource = SearchView() self.factory = RequestFactory() self.profile = UserProfile.objects.get(pk=2519) self.user = self.profile self.api_version = 1 def region_for(self, region): req = self.factory.get('/', ({} if region is None else { 'region': region })) req.API = True req.API_VERSION = self.api_version req.LANG = '' req.user = self.user req.user = self.profile RegionMiddleware().process_request(req) ACLMiddleware().process_request(req) return self.resource.get_region_from_request(req) @patch('mkt.regions.middleware.RegionMiddleware.region_from_request') def test_get_region_all_v1(self, mock_request_region): geoip_fallback = regions.PE # Different than the default: restofworld. mock_request_region.return_value = geoip_fallback # Test string values (should return region with that slug). eq_(self.region_for('restofworld'), regions.RESTOFWORLD) ok_(not mock_request_region.called) eq_(self.region_for('us'), regions.US) ok_(not mock_request_region.called) # Test fallback to request.REGION (should return GeoIP region if region # isn't specified or is specified and empty). eq_(self.region_for(None), geoip_fallback) eq_(mock_request_region.call_count, 1) eq_(self.region_for(''), geoip_fallback) eq_(mock_request_region.call_count, 2) # Test fallback to restofworld (e.g. if GeoIP fails). with patch('mkt.regions.middleware.RegionMiddleware.' 'process_request') as mock_process_request: eq_(self.region_for(None), regions.RESTOFWORLD) ok_(mock_process_request.called) @patch('mkt.regions.middleware.RegionMiddleware.region_from_request') def test_get_region_all_v2(self, mock_request_region): geoip_fallback = regions.PE # Different than the default: restofworld. mock_request_region.return_value = geoip_fallback self.api_version = 2 # Test string values (should return region with that slug). eq_(self.region_for('restofworld'), regions.RESTOFWORLD) ok_(not mock_request_region.called) eq_(self.region_for('us'), regions.US) ok_(not mock_request_region.called) # Test fallback to request.REGION. We are using api v2, so we shouldn't # fall back on GeoIP and simply use RESTOFWORLD. eq_(self.region_for(None), regions.RESTOFWORLD) ok_(not mock_request_region.called) eq_(self.region_for(''), regions.RESTOFWORLD) ok_(not mock_request_region.called) def test_get_region_none(self): # When the client explicity requested `region=None` in the query string # we should not have a region set at all, not even restofworld. eq_(self.region_for('None'), None) def test_get_region_worldwide(self): eq_(self.region_for('worldwide'), regions.RESTOFWORLD)