Uploaded image for project: 'Libcloud'
  1. Libcloud
  2. LIBCLOUD-102

Rackspace loadbalancer tests fail under 2.7

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 0.6.1
    • None
    • Python 2.7 (virtualenv), MacOS X 10.6.8

    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.

      Attachments

        Activity

          People

            kami Tomaz Muraus
            jeamland Benno Rice
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: