lunaryon が適切に述べているように、それは不可能です。抽象メソッドを含む ABC のまさにその目的は、宣言されたようにインスタンス化できないことです。
ただし、ABC をイントロスペクトし、その場でダミーの非抽象クラスを作成するユーティリティ関数を作成することは可能です。この関数は、テスト メソッド/関数内で直接呼び出すことができ、いくつかのメソッドをテストするためだけに、テスト ファイルにボイラー プレート コードを書く必要がなくなります。
def concreter(abclass):
"""
>>> import abc
>>> class Abstract(metaclass=abc.ABCMeta):
... @abc.abstractmethod
... def bar(self):
... return None
>>> c = concreter(Abstract)
>>> c.__name__
'dummy_concrete_Abstract'
>>> c().bar() # doctest: +ELLIPSIS
(<abc_utils.Abstract object at 0x...>, (), {})
"""
if not "__abstractmethods__" in abclass.__dict__:
return abclass
new_dict = abclass.__dict__.copy()
for abstractmethod in abclass.__abstractmethods__:
#replace each abc method or property with an identity function:
new_dict[abstractmethod] = lambda x, *args, **kw: (x, args, kw)
#creates a new class, with the overriden ABCs:
return type("dummy_concrete_%s" % abclass.__name__, (abclass,), new_dict)