def wrapper(request, instance_url_name, *args, **kwargs): instance = get_instance_or_404(url_name=instance_url_name) # Include the instance as both a request property and as an # view function argument for flexibility and to keep "template # only" requests simple. request.instance = instance request.instance_supports_ecobenefits = instance.has_itree_region() user = request.user if user.is_authenticated(): instance_user = user.get_instance_user(instance) request.instance_user = instance_user if instance.is_accessible_by(request.user): add_visited_instance(request, instance) return view_fn(request, instance, *args, **kwargs) else: if redirect: if request.user.is_authenticated(): return HttpResponseRedirect( reverse('instance_not_available')) else: return login_redirect(request) else: return HttpResponse('Unauthorized', status=401)
def test_get_last_instance(self): add_visited_instance(self.request, self.instance1) self.assertEqual(self.instance1, get_last_visited_instance(self.request)) add_visited_instance(self.request, self.instance2) self.assertEqual(self.instance2, get_last_visited_instance(self.request)) add_visited_instance(self.request, self.instance1) self.assertEqual(self.instance1, get_last_visited_instance(self.request))