Hardware unit test

@icbat Here's that metaclassing I told you about. :) Lemme know what you think.

<!---
@huboard:{"order":1.5,"milestone_order":16,"custom_state":""}
-->

Not sure about that part, I'll test with out it and see what happens. I like it there regardless because it allows you to run a single test easily if you are iterating and have a bunch of tests you don't wanna run.