keystone/tests/test_novaclient_compat.py

62 lines
2.0 KiB
Python

import copy
import json
import os
import sys
from keystonelight import config
from keystonelight import logging
from keystonelight import models
from keystonelight import test
from keystonelight import utils
import default_fixtures
CONF = config.CONF
NOVACLIENT_REPO = 'git://github.com/openstack/python-novaclient.git'
class CompatTestCase(test.TestCase):
def setUp(self):
super(CompatTestCase, self).setUp()
class NovaClientCompatMasterTestCase(CompatTestCase):
def setUp(self):
super(NovaClientCompatMasterTestCase, self).setUp()
revdir = test.checkout_vendor(NOVACLIENT_REPO, 'master')
self.add_path(revdir)
from novaclient.keystone import client as ks_client
from novaclient import client as base_client
reload(ks_client)
reload(base_client)
CONF(config_files=['keystoneclient_compat_master.conf'])
self.app = self.loadapp('keystoneclient_compat_master')
self.load_backends()
self.load_fixtures(default_fixtures)
self.server = self.serveapp('keystoneclient_compat_master')
def test_authenticate_and_tenants(self):
from novaclient.keystone import client as ks_client
from novaclient import client as base_client
port = self.server.socket_info['socket'][1]
CONF.public_port = port
# NOTE(termie): novaclient wants a "/" TypeErrorat the end, keystoneclient does not
# NOTE(termie): projectid is apparently sent as tenantName, so... that's
# unfortunate.
# NOTE(termie): novaclient seems to care about the region more than
# keystoneclient
conn = base_client.HTTPClient(auth_url="http://localhost:%s/v2.0/" % port,
user='FOO',
password='foo2',
projectid='BAR',
region_name='RegionOne')
client = ks_client.Client(conn)
client.authenticate()
# NOTE(termie): novaclient doesn't know about tenants or anything like that
# so just test that we can validate