heynemann edited this page Nov 21, 2010 · 4 revisions
Clone this wiki locally

MI7 Agents Framework

MI7 is a lightweight and fun spying test framework. It's main goal is to be as easy to use as possible.

Python is not a language where one expects to be doing a lot of dependency injection, mocking, stubbing and other techniques that are fairly common in other languages. That "modus operandi" is what Python developers call being Pythonic.

MI7 is a framework that wants to operate pretty much like James Bond (the old one): in stealth mode. The main goal of the library is to be invisible to your production code, and as invisible as possible in your tests.

Experience shows that using current Python test helpers, tests tend to become rapidly verbosy. There's nothing worse than writing 10 lines of boilerplate code in a test so that you can start testing what you want.

With MI7, we are trying to answer that call. A call for a library that helps us write tests with clear intent and change the current view that Pythonists do not like Test Driven Development.


If you are one of those people that do not appreciate geeky jokes and want to work "seriously", stop here. The library developers are not like that. We love code that makes us giggle, we love references and jokes. We do not care about being politically correct and more than that, we just want to be happy.

So if you are not like that, there's nothing wrong with that. You just might like a library that's more well-suited to your needs, like one of the following:

  • mock - Michael Foord
  • Ludibrio - Gustavo Rezende
  • Python Mocks - Dave Kirby
  • PyMock - Jeff Younker
  • minimock - Ian Bicking
  • svnmock - Collin Winter
  • Mocker - Gustavo Niemeyer
  • Stubble - Iwan Vosloo
  • Mox - smiddlek, dglasser
  • MockTest - Tim Cuthbertson
  • Fudge - Kumar McMillan
  • Mockito for Python - Szczepan Faber

This list was taken from the The Python Testing Tools Taxonomy Page <http://packages.python.org/testing/#mock-testing-tools>.

As you can see, quite a lot of people (very smart people), have had their 2¢ to say about this issue. All of them have succeeded, each in their own right. We just want something new and have to go for it. For better or worse.

With that disclaimer, keep on reading to see if you like MI7. Check the other pages for more information

Installing MI7

Installing MI7 is as easy as using easy_install or pip to get it from PyPI

easy_install pip
pip install mi7

That should get you up and running.

Further Details