def type_or_brand(request, catalog, type_or_brand, product=None, set=None): """ В данной функции идёт обработка приходящего урла с выявлением, Тип это или Производитель. """ context = RequestContext(request) context['catalog'] = get_object_or_404(Catalog, slug=catalog) context['type_or_brand_slug'] = type_or_brand context['catalog_slug'] = catalog try: if Manufacturer.objects.get(catalog=context['catalog'], slug=type_or_brand): if set: context['current_set'] = get_object_or_404(Set, slug=set) context['products_set'] = set_brand(catalog, type_or_brand, set) return render_to_response('catalog/catalog_set.html', context) context['catalog'] = get_object_or_404(Manufacturer, catalog=context['catalog'], slug=type_or_brand) #Уникальность зон для производителя zones = context['catalog'].get_zone(request.path) context['zone_title'] = zones['zone_title'] context['zone_medium_one'] = zones['zone_medium_one'] context['zone_medium_two'] = zones['zone_medium_two'] context['type_or_brand_products'] = [type.type.all() for type in CatalogBrandType.objects.filter(catalog=get_object_or_404(Catalog, slug=catalog), brand=context['catalog'])][0] context['manufacturer'] = True except: try: if TypeA.objects.get(catalog=context['catalog'], slug=type_or_brand): if set: context['current_set'] = get_object_or_404(Set, slug=set) context['products_set'] = set_type(catalog, type_or_brand, set) return render_to_response('catalog/catalog_set.html', context) context['catalog'] = get_object_or_404(TypeA, catalog=context['catalog'], slug=type_or_brand) context['type_or_brand_products'] = [brand.brand for brand in CatalogBrandType.objects.filter(catalog=get_object_or_404(Catalog, slug=catalog), type=context['catalog'])] context['type'] = True except: if get_object_or_404(TypeB, catalog=context['catalog'], slug=type_or_brand): if set: context['current_set'] = get_object_or_404(Set, slug=set) context['products_set'] = set_type(catalog, type_or_brand, set) return render_to_response('catalog/catalog_set.html', context) context['catalog'] = get_object_or_404(TypeB, catalog=context['catalog'], slug=type_or_brand) context['type_or_brand_products'] = [brand.brand for brand in CatalogBrandType.objects.filter(catalog=get_object_or_404(Catalog, slug=catalog), type=context['catalog'])] context['type'] = True if product: if context.has_key('brand'): context['product'] = get_object_or_404(Product, manufacturer=context['brand'], slug=product) elif context.has_key('types'): context['product'] = get_object_or_404(Product, types=context['types'], slug=product) context['image'] = context['product'].picture.all()[0] #if ajax popupwindow request if request.GET.has_key('ajax'): return render_to_response('catalog/catalog_items_ajax.html', context) return render_to_response('catalog/catalog_items.html', context) return render_to_response('catalog/catalog_type_or_brand.html', context)
def test_context_processor(self): OLD_TEMPLATE_CONTEXT_PROCESSORS = settings.TEMPLATE_CONTEXT_PROCESSORS settings.TEMPLATE_CONTEXT_PROCESSORS = tuple(settings.TEMPLATE_CONTEXT_PROCESSORS) + ('feedback.context_processors.feedback_form',) request = self.factory.get(self.feedback_url) c = RequestContext(request) self.assertTrue(c.has_key('feedback_form')) response = self.c.post(self.feedback_url, {}) self.assertEqual(1, len(response.context['feedback_form'].errors)) settings.TEMPLATE_CONTEXT_PROCESSORS = OLD_TEMPLATE_CONTEXT_PROCESSORS
def test_context_processor(self): from django.template import loader, context context._standard_context_processors = None request = self.factory.get(self.feedback_url) c = RequestContext(request) self.assertTrue(c.has_key('feedback_form')) response = self.c.post(self.feedback_url, {}) self.assertEqual(1, len(response.context['feedback_form'].errors)) context._standard_context_processors = None
def test_has_key(self): a = Context({'a': 1}) b = RequestContext(HttpRequest(), {'a': 1}) msg = "Context.has_key() is deprecated in favor of the 'in' operator." msg2 = "RequestContext.has_key() is deprecated in favor of the 'in' operator." with warnings.catch_warnings(record=True) as warns: warnings.simplefilter('always') self.assertIs(a.has_key('a'), True) self.assertIs(a.has_key('b'), False) self.assertIs(b.has_key('a'), True) self.assertIs(b.has_key('b'), False) self.assertEqual(len(warns), 4) self.assertEqual(str(warns[0].message), msg) self.assertEqual(str(warns[1].message), msg) self.assertEqual(str(warns[2].message), msg2) self.assertEqual(str(warns[3].message), msg2)
def test_has_key(self): a = Context({'a': 1}) b = RequestContext(HttpRequest(), {'a': 1}) msg = "Context.has_key() is deprecated in favor of the 'in' operator." msg2 = "RequestContext.has_key() is deprecated in favor of the 'in' operator." with warnings.catch_warnings(record=True) as warns: warnings.simplefilter('always') self.assertEqual(a.has_key('a'), True) self.assertEqual(a.has_key('b'), False) self.assertEqual(b.has_key('a'), True) self.assertEqual(b.has_key('b'), False) self.assertEqual(len(warns), 4) self.assertEqual(str(warns[0].message), msg) self.assertEqual(str(warns[1].message), msg) self.assertEqual(str(warns[2].message), msg2) self.assertEqual(str(warns[3].message), msg2)
def test_key_exists(self): """ Check if SETTINGS key exists in default RequestContext """ default_context = RequestContext(HttpRequest()) self.assertTrue(default_context.has_key("SETTINGS"))
def test_settings_in_context(self): try: default_context = RequestContext(HttpRequest()) self.assertTrue(default_context.has_key('SETTINGS')) except ImportError: pass