Details
Description
The unittest module in 2.7 has grown some extra magic used by assertEqual. There are some support variables for this that only get set if unittest.TestCase._init_ is run. test.loadbalancer.test_rackspace.RackspaceLBMockHttp inherits from unittest.TestCase but never calls its _init_ method and so you get failures like this:
======================================================================
ERROR: test_create_balancer (_main_.RackspaceUKLBTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test/loadbalancer/test_rackspace.py", line 60, in test_create_balancer
Member(None, '10.1.0.11', 80))
File "/Users/benno/ninefold/libcloud/libcloud/loadbalancer/drivers/rackspace.py", line 114, in create_balancer
data=json.dumps(balancer_object))
File "/Users/benno/ninefold/libcloud/libcloud/loadbalancer/drivers/rackspace.py", line 67, in request
params=params, data=data, method=method, headers=headers)
File "/Users/benno/ninefold/libcloud/libcloud/common/base.py", line 390, in request
headers=headers)
File "/Users/benno/ninefold/libcloud/test/_init_.py", line 161, in request
status, body, headers, reason = meth(method, url, body, headers)
File "test/loadbalancer/test_rackspace.py", line 133, in _v1_0_slug_loadbalancers
self.assertEqual(body_json['loadBalancer']['protocol'], 'HTTP')
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/case.py", line 493, in assertEqual
assertion_func = self._getAssertEqualityFunc(first, second)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/case.py", line 476, in _getAssertEqualityFunc
asserter = self._type_equality_funcs.get(type(first))
AttributeError: 'RackspaceLBMockHttp' object has no attribute '_type_equality_funcs'
----------------------------------------------------------------------
Attached patch fixes the problem but in a somewhat hackish manner.