Robot handling
==============

The test suite has support for a "robot", which allows the test suite to
insert a card into the card reader, remove it, enter a pin code, or
confirm access to the card for privacy-sensitive data.

To select the robot type to use, set the `EID_ROBOT_STYLE` environment
variable to the correct value. The following options exist:

1. `EID_ROBOT_STYLE=manual`: no actual robot, instead print instructions
   on stdout and ask the user to perform actions. For interactive use
   only. This assumes that the instructions will be followed to the letter, and
   will fail if not.
2. `EID_ROBOT_STYLE=fedict`: opens /dev/ttyACM0, on which it expects to
   find a robot which implements the same protocol as implemented by the
   [Fedict eID robot](https://github.com/yoe/eid-robot).
3. `EID_ROBOT_STYLE` is unset: no robot is available; tests which
   require the insertion or removal of a card will be skipped.

In addition, in order to run the test suite in a noninteractive
environment, it may be necessary to suppress tests which require
entering a pin code or which would cause the middleware to request
permission from the user. This can be done by way of the
`EID_DALOGS_STYLE` environment variable. For this one, the following
options exist:

1. `EID_DIALOGS_STYLE=ok`: all kinds of dialogs may be shown, no
   restrictions. Please note that entering an incorrect pincode three times
   will result in the card getting locked.
2. `EID_DIALOGS_STYLE=nopin`: dialogs asking pin codes will be
   suppressed, but all other dialogs will be shown.
3. `EID_DIALOGS_STYLE` is unset: no dialogs will be shown.

In addition, most tests require an actual card to be in a reader. This
may be a test card, or it can be an actual ID card. It is safe to run
the test suite on all current cards; the test suite will only read data
from the card, never write to it.
