'L{calcResponse} accepts the C{\'md5\'} algorithm and returns an MD5 hash
of its parameters, including the nonce count, client nonce, and QoP
value if they are specified.'

def test_MD5HashResponseExtra(self, _algorithm='md5', _hash=md5):

    hashA1 = 'abc123'
    hashA2 = '789xyz'
    nonce = 'lmnopq'
    nonceCount = '00000004'
    clientNonce = 'abcxyz123'
    qop = 'auth'
    response = ((((((((((hashA1 + ':') + nonce) + ':') + nonceCount) + ':') + clientNonce) + ':') + qop) + ':') + hashA2)
    expected = hexlify(_hash(response).digest())
    digest = calcResponse(hashA1, hashA2, _algorithm, nonce, nonceCount, clientNonce, qop)
    self.assertEqual(expected, digest)
