Commit 6ddcf213 authored by Denis Salem's avatar Denis Salem
Browse files

fix GetEntryMetadata and GetBlogMetadata: raise error if metadata doesn't exists

parent 054d7af9
......@@ -23,4 +23,6 @@ Il est possible de définir ses propres variable dans les métadonnées de la pu
Pour accéder à l'une de ces variables on utilise la motif suivant:
> .:Escape:: .:GetEntryMetadata::<nom_de_la_variable>:. :.
> .:Escape:: .:GetEntryMetadata::nom-de-la-variable:. ::EndEscape:.
Si la variable appelé référencé n'existe pas
authors: 'Denis Salem'
categories: ''
tags: ''
chapter: 5.1
title: Motifs de type Accesseur
---VENC-BEGIN-PREVIEW---
---VENC-END-PREVIEW---
Il existe plusieurs type de motifs que VenC reconnais. Le premier d'entre eux est le type accesseur.
Il permet de récupérer le contenu d'une variable dont la disponibilité dépend du contexte.
......@@ -495,8 +495,14 @@ class DataStore:
def get_blog_metadata(self, argv):
# if exception is raised it will be automatically be catch by processor.
return self.blog_configuration[argv[0]]
try:
return self.blog_configuration[argv[0]]
except KeyError:
raise PatternInvalidArgument(
"GetBlogMetadata",
argv[0],
messages.blog_has_no_metadata_like.format(argv[0])
)
def get_blog_metadata_if_exists(self, argv):
try:
value = self.blog_configuration[argv[0]]
......@@ -511,10 +517,16 @@ class DataStore:
def get_entry_metadata(self, argv):
# if exception is raised it will be automatically be catch by processor.
getattr(self.entries[self.requested_entry_index], argv[0])
return str(getattr(self.entries[self.requested_entry_index], argv[0]))
try:
return str(getattr(self.entries[self.requested_entry_index], argv[0]))
except AttributeError:
raise PatternInvalidArgument(
"GetEntryMetadata",
argv[0],
messages.entry_has_no_metadata_like.format(argv[0])
)
def get_entry_metadata_if_exists(self, argv):
try:
value = str(getattr(self.entries[self.requested_entry_index], argv[0]))
......
......@@ -113,5 +113,6 @@ class Messages:
undefined_variable = "{0} is undefined in {1}."
too_much_call_of_content = "There is too much call of .:GetEntryContent:. and/or .:GetEntryPreview in {0}"
entry_has_no_metadata_like = "Entry has no metadata identified by {0}."
blog_has_no_metadata_like = "Blog has no metadata identified by {0}."
invalid_range = "Invalid range {0}:{1}."
......@@ -111,4 +111,5 @@ class Messages:
undefined_variable = "{0} n'est pas défini dans \"{1}\"."
too_much_call_of_content = "Il y a trop d'appels de .:GetEntryContent:. et/ou de .:GetEntryPreview:. dans {0}"
entry_has_no_metadata_like = "La publication ne possède pas la métadonnée identifié par {0}."
blog_has_no_metadata_like = "Le blog ne possède pas la métadonnée identifié par {0}."
invalid_range = "Plage de nombres invalide {0}:{1}."
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment