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 the inspection 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 the inspection 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.