Be careful with this, it has some side-effects that are not-obvious: e.g. ``__setattr__`` will call it and set the attribute onto the instance instead in the attribute.  Ran into this problem with ``images`` module, and had to do some really ugly things like:

    def __init___():
        ...
        _dic = self.interfaces[interface_name]
        super(DockerImages, self).__setattr__('_interface',
                                              _dic(subtest, timeout, verbose))
    ...
    def __setattr__(self, name, value):
        ...
        if hasattr(self._interface, name):
            return setattr(self._interface, name, value)
        else:
            super(DockerImages, self).__setattr__(name, value)

Consider just adding wrappers for everything inside ``self.docker_cmd`` that you want, then you can avoid the problem.  Eventhough that makes the test dependant on the DockerCMD interface, we have version-tracking to remind us of these changes.  It maybe wouldn't even be bad to double check ``subtest.version == whatever`` and log a warning when the major number changes.