Непонятно, как вы получаете index
, но resolve(url).func
возвращает экземпляр python объекта , который является функцией. Все в python является объектами, а также функциями, поэтому вы получаете экземпляр в памяти. Когда вы сравниваете два объекта, вы сравниваете разные экземпляры одной и той же функции. Как вы можете видеть, их адреса в памяти различны.
Поэтому вместо непосредственного сравнения их сравните их имя и модуль:
f = resolve(url).func
self.assertEqual(f.__name__, index.__name__)
self.assertEqual(f.__module__, index.__module__)