cython
1def test_str_subclass_kwargs(k=None):
2"""
3Test passing keywords with names that are not of type ``str``
4but a subclass:
5
6>>> class StrSubclass(str):
7... pass
8>>> class StrNoCompare(str):
9... def __eq__(self, other):
10... raise RuntimeError("do not compare me")
11... def __hash__(self):
12... return hash(str(self))
13>>> kwargs = {StrSubclass('k'): 'value'}
14>>> test_str_subclass_kwargs(**kwargs)
15'value'
16>>> kwargs = {StrNoCompare('k'): 'value'}
17>>> test_str_subclass_kwargs(**kwargs)
18Traceback (most recent call last):
19RuntimeError: do not compare me
20"""
21return k
22