Quixote FAQ
This FAQ provides quick answers to common questions about Quixote.
Do I need to know Python to use Quixote ?
While being a Python expert would certainly help when using Quixote, there are no requirements except for basic knowledge of the syntax.
I have a moulinette, how can I test it ?
Moulinettes can be tested locally using the Dulcinea tool, which can be
installed through pip
. See the Testing your moulinette tutorial.
I already have a moulinette in another language, can I adapt it ?
Yes. Here are a few common cases for exising moulinettes:
If your moulinette is already a full-featured program, you can execute it using the
command()
built-in from theinspection
module, and then collect its output or its return code.If your moulinette is rather a reference program (that is, a correct implementation of the exercise), you can use the
diff_exec()
built-in (also in theinspection
module) to check for any difference between the student’s delivery and the reference program. This is explained in details in the Writing a moulinette with a reference program tutorial.
Which Python modules can I use within Quixote ?
The build and fetch phases are executed in a basic environment,
containing the Python Standard Library, Quixote, and the requests
module.
The inspection phase is executed inside the environment built by the
build
phase, therefore it can contain any module installed by the
build
phase. This topic is discussed in details in the Writing a
moulinette with external Python modules tutorial.
How can I stop the inspection if a given step fails ?
Sometimes, a single step is essential to the whole inspection process, in such a way that there is no
point in continuing the inspection if that step fails. In order to mark such a step, the
inspector()
decorator accepts a critical
argument, defaulting it to False
.
If the argument is instead set to True
, and the marked step fails, then the next steps will not be
executed, causing the inspection to stop early.