def test_template_exists(Environment_m, FileSystemLoader_m): loader = FileSystemLoader_m.return_value loader.list_templates.return_value = [ 'c/t1/template.j2', 'c/t2/template.j2' ] manager = TemplateManager('/fake') assert manager.template_exists('c/t1') assert manager.template_exists('c/t1/template.j2') assert not manager.template_exists('none')
def validate_templates(self, value): manager = TemplateManager(settings.RAFEE_REPO_DIR) bad_template_names = [] for template_name in value.split(","): if not manager.template_exists(template_name): bad_template_names.append(template_name) if len(bad_template_names) > 0: raise serializers.ValidationError(TEMPLATES_NOT_FOUND.format(bad_template_names)) return value
def post(self, request): self.validate(request) template_name = request.data.get('template_name') manager = TemplateManager(settings.RAFEE_REPO_DIR) if not manager.template_exists(template_name): return Response( {'detail': TEMPLATE_NOT_FOUND}, status=status.HTTP_500_INTERNAL_SERVER_ERROR, ) task = render.delay(template_name) return Response({'task': task.task_id})