Singleton e Unit Tests

9 Out

Singletons [1] são considerados um câncer por muitas pessoas, entretanto, enquanto os módulos em python atuam muito bem como singletons, módulos não podem ser extendidos, e ai entram as classes Singleton.

Eu tenho usado singletons em dois projetos, o primeiro é django-breadcrumbs, que usa singletons para armazenar breadcrumbs e depois mostra-los nos templates. Outro projeto é nosso sistema na PDG que usa um singleton para armazenar a request, e então eu posso usa-la em qualquer lugar (ex: Django Models save).

Então na última semana enquanto eu corrigia uns bugs do django-breadcrumbs, me peguei escrevendo unit testes e.. ‘cacildis’, como eu destruo esse singleton. Depois de pesquisar um pouco sobre singletons e ver estas ótimas dicas numa questão do Stack Overflow [2] escrevi um singleton simples e alguns unit tests. Isso vai ser útil para muita gente:

E então você pode usar nos seus testes assim::

É isso, have fun 🙂

[1] – Singletons at Wikipedia
[2] – “Python Singletons – How do you get rid of (__del__) them in your testbench?” at Stack Overflow

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

No comments yet

Leave a Reply