scieloorg/balaio — pull request #105 by gustavofonseca (2013-09-12 18:31:25+00:00)
Title: Fixes #90 - Implementação inicial do módulo de notificações

Foram adicionadas as classes:

* `models.Checkpoint`: Representa um ponto de verificação, que pode conter uma ou *ênes* notificações.
* `models.Notice`: Representa uma notificação, que contém **status**, **mensagem** e **rótulo**.
* `models.Status`: *Enum* que representa os **status** de notificações.
* `models.Point`: *Enum* que representa o ponto de verificação.

Notificadores são vinculados aos pontos de verificação. Sua construção depende de configurações da aplicação, portanto é disponibilizada uma *factory* de notificadores para cada ponto de verificação:

```python
>>> CheckoutNotifier = checkout_notifier_factory(config)
```

*CheckoutNotifier* é uma classe que quando instanciada, produz um objeto **Notifier** que expõe métodos para realizar notificações de um *Attempt* em um determinado ponto de verificação (*Checkpoint*):

```python
>>> first_attempt = models.Attempt()
>>> first_attempt_notifier = CheckoutNotifier(first_attempt)
>>> first_attempt_notifier.start()
>>> first_attempt_notifier.tell('Alguns problemas durante o processo de checkin', models.Status.error)
>>> first_attempt_notifier.end()
```