Source code for apps.widgets.quests.management.commands.verify_quests
"""Invocation: python manage.py verify_quests
Verifies that all of the existing quest lock and unlock condition strings are valid.
Prints out the names of any invalid quest conditions."""
from apps.managers.challenge_mgr.challenge_mgr import MakahikiBaseCommand
from apps.widgets.quests.models import Quest
from apps.managers.predicate_mgr import predicate_mgr
[docs]class Command(MakahikiBaseCommand):
"""command"""
help = "Verifies that all existing quest unlock/completion conditions are valid."
[docs] def handle(self, *args, **options):
"""handle"""
print "Validating quests ..."
for quest in Quest.objects.all():
error_msg = predicate_mgr.validate_predicates(quest.unlock_conditions)
if error_msg:
print "Unlock conditions for '%s' did not validate: %s" % (quest.name, error_msg)
error_msg = predicate_mgr.validate_predicates(quest.completion_conditions)
if error_msg:
print "Completion conditions '%s' for '%s' did not validate: %s" % (
quest.completion_conditions, quest.name, error_msg)
print "All quests conditions are valid."