'The given L{URL} should have the given components.
@param u: The actual L{URL} to examine.
@param scheme: The expected scheme.
@param host: The expected host.
@param path: The expected path.
@param query: The expected query.
@param fragment: The expected fragment.
@param port: The expected port.
@param userinfo: The expected userinfo.'

def assertURL(self, u, scheme, host, path, query, fragment, port, userinfo=u''):

    actual = (u.scheme, u.host, u.path, u.query, u.fragment, u.port, u.userinfo)
    expected = (scheme, host, tuple(path), tuple(query), fragment, port, u.userinfo)
    self.assertEqual(actual, expected)
