Commit e529c8a8238ce7a9a382971e27fb7903532e05c8

Authored by Miguel Barão
1 parent 203495c3
Exists in master and in 1 other branch dev

- show error when yaml parsing questions fails.

Showing 3 changed files with 8 additions and 4 deletions   Show diff stats
@@ -6,7 +6,6 @@ @@ -6,7 +6,6 @@
6 6
7 - parece que é preciso criar à mão a pasta para as respostas (ans/...) depois apercebo-me que os caminhos no teste dizem respeito à directoria donde o teste é corrido... as respostas deveriam guardadas no directório dado. 7 - parece que é preciso criar à mão a pasta para as respostas (ans/...) depois apercebo-me que os caminhos no teste dizem respeito à directoria donde o teste é corrido... as respostas deveriam guardadas no directório dado.
8 - se database for mal configurada, é criada uma base de dados vazia e rebenta na autenticacao. 8 - se database for mal configurada, é criada uma base de dados vazia e rebenta na autenticacao.
9 -- mostrar erro quando nao consegue importar questions files  
10 - testar regex na definicao das perguntas. como se faz rawstring em yaml? singlequote? problemas de backslash??? sim... necessário fazer \\ em varios casos, mas não é claro! e.g. \n é convertido em espaço mas \w é convertido em \\ e w. 9 - testar regex na definicao das perguntas. como se faz rawstring em yaml? singlequote? problemas de backslash??? sim... necessário fazer \\ em varios casos, mas não é claro! e.g. \n é convertido em espaço mas \w é convertido em \\ e w.
11 - testar envio de parametros para stdin para perguntas tipo generator. 10 - testar envio de parametros para stdin para perguntas tipo generator.
12 11
@@ -27,6 +26,7 @@ @@ -27,6 +26,7 @@
27 26
28 # FIXED 27 # FIXED
29 28
  29 +- mostrar erro quando nao consegue importar questions files
30 - pacotes exactos usados para instalar. 30 - pacotes exactos usados para instalar.
31 - detectar colisoes nas referencias das perguntas. 31 - detectar colisoes nas referencias das perguntas.
32 - usar pomba da ue moderna. 32 - usar pomba da ue moderna.
demo/questions.yaml
  1 +a: dskld
1 - 2 -
2 ref: solar-system-jupiter 3 ref: solar-system-jupiter
3 type: radio 4 type: radio
@@ -3,7 +3,7 @@ import yaml @@ -3,7 +3,7 @@ import yaml
3 import random 3 import random
4 import re 4 import re
5 import subprocess 5 import subprocess
6 -import os 6 +import sys
7 7
8 # Example usage: 8 # Example usage:
9 # 9 #
@@ -30,8 +30,11 @@ class QuestionsPool(dict): @@ -30,8 +30,11 @@ class QuestionsPool(dict):
30 with open(filename, 'r') as f: 30 with open(filename, 'r') as f:
31 questions = yaml.load(f) 31 questions = yaml.load(f)
32 except(FileNotFoundError): 32 except(FileNotFoundError):
33 - print(' * Questions file "%s" not found. Aborting...' % filename)  
34 - os.sys.exit(1) 33 + print(' * Questions file "{0}" not found. Aborting...'.format(filename))
  34 + sys.exit(1)
  35 + except(yaml.parser.ParserError):
  36 + print(' * Error in questions file "{0}". Aborting...'.format(filename))
  37 + sys.exit(1)
35 38
36 # add defaults if missing from sources 39 # add defaults if missing from sources
37 for i, q in enumerate(questions): 40 for i, q in enumerate(questions):