Having this unittest is ok but it doesn't cover all the cases.

Better solution would be to make few more subclasses of your test cases with overridden `setUp` like this:
```python
class RedisProtocolTest(unittest.TestCase):
    def setUp(self):
        #self.loop = test_utils.TestLoop()
        self.loop = asyncio.get_event_loop()
        self.protocol_class = RedisProtocol
   ...

class RedisProtocolLocalLoopTest(RedisProtocolTest):
    def setUp(self):
        super().setUp()
        asyncio.set_event_loop(None)

# etc for all other test cases
```
this should cover all cases