def test_libs_from_git(self): "Test that LIBS_FROM_GIT is auto-generated" projects = { 'git.openstack.org/openstack/nova': { 'required': True, 'short_name': 'nova', }, 'git.openstack.org/openstack/oslo.messaging': { 'required': True, 'short_name': 'oslo.messaging', }, 'git.openstack.org/openstack/devstack-plugin': { 'required': False, 'short_name': 'devstack-plugin', }, } p = dict(base_services=[], base_dir='./test', path=os.path.join(self.tmpdir, 'test.local.conf'), projects=projects) lc = LocalConf(p.get('localrc'), p.get('local_conf'), p.get('base_services'), p.get('services'), p.get('plugins'), p.get('base_dir'), p.get('projects')) lc.write(p['path']) lfg = None with open(p['path']) as f: for line in f: if line.startswith('LIBS_FROM_GIT'): lfg = line.strip().split('=')[1] self.assertEqual('nova,oslo.messaging', lfg)
def test_plugins(self): "Test that plugins without dependencies work" localrc = {'test_localrc': '1'} local_conf = {'install': {'nova.conf': {'main': {'test_conf': '2'}}}} services = {'cinder': True} # We use ordereddict here to make sure the plugins are in the # *wrong* order for testing. plugins = OrderedDict([ ('bar', 'git://git.openstack.org/openstack/bar-plugin'), ('foo', 'git://git.openstack.org/openstack/foo-plugin'), ('baz', 'git://git.openstack.org/openstack/baz-plugin'), ]) p = dict(localrc=localrc, local_conf=local_conf, base_services=[], services=services, plugins=plugins, base_dir='./test', path=os.path.join(self.tmpdir, 'test.local.conf')) lc = LocalConf(p.get('localrc'), p.get('local_conf'), p.get('base_services'), p.get('services'), p.get('plugins'), p.get('base_dir'), p.get('projects'), p.get('project')) lc.write(p['path']) plugins = [] with open(p['path']) as f: for line in f: if line.startswith('enable_plugin'): plugins.append(line.split()[1]) self.assertEqual(['bar', 'baz', 'foo'], plugins)
def test_plugin_deps(self): "Test that plugins with dependencies work" os.makedirs(os.path.join(self.tmpdir, 'foo-plugin', 'devstack')) os.makedirs(os.path.join(self.tmpdir, 'foo-plugin', '.git')) os.makedirs(os.path.join(self.tmpdir, 'bar-plugin', 'devstack')) os.makedirs(os.path.join(self.tmpdir, 'bar-plugin', '.git')) with open(os.path.join( self.tmpdir, 'foo-plugin', 'devstack', 'settings'), 'w') as f: f.write('define_plugin foo-plugin\n') with open(os.path.join( self.tmpdir, 'bar-plugin', 'devstack', 'settings'), 'w') as f: f.write('define_plugin bar-plugin\n') f.write('plugin_requires bar-plugin foo-plugin\n') localrc = {'test_localrc': '1'} local_conf = {'install': {'nova.conf': {'main': {'test_conf': '2'}}}} services = {'cinder': True} # We use ordereddict here to make sure the plugins are in the # *wrong* order for testing. plugins = OrderedDict([ ('bar-plugin', 'https://git.openstack.org/openstack/bar-plugin'), ('foo-plugin', 'https://git.openstack.org/openstack/foo-plugin'), ]) p = dict(localrc=localrc, local_conf=local_conf, base_services=[], services=services, plugins=plugins, base_dir=self.tmpdir, path=os.path.join(self.tmpdir, 'test.local.conf')) lc = LocalConf(p.get('localrc'), p.get('local_conf'), p.get('base_services'), p.get('services'), p.get('plugins'), p.get('base_dir'), p.get('projects'), p.get('project')) lc.write(p['path']) plugins = [] with open(p['path']) as f: for line in f: if line.startswith('enable_plugin'): plugins.append(line.split()[1]) self.assertEqual(['foo-plugin', 'bar-plugin'], plugins)
def test_plugin_deps(self): "Test that plugins with dependencies work" os.makedirs(os.path.join(self.tmpdir, 'foo-plugin', 'devstack')) os.makedirs(os.path.join(self.tmpdir, 'foo-plugin', '.git')) os.makedirs(os.path.join(self.tmpdir, 'bar-plugin', 'devstack')) os.makedirs(os.path.join(self.tmpdir, 'bar-plugin', '.git')) with open(os.path.join( self.tmpdir, 'foo-plugin', 'devstack', 'settings'), 'w') as f: f.write('define_plugin foo-plugin\n') with open(os.path.join( self.tmpdir, 'bar-plugin', 'devstack', 'settings'), 'w') as f: f.write('define_plugin bar-plugin\n') f.write('plugin_requires bar-plugin foo-plugin\n') localrc = {'test_localrc': '1'} local_conf = {'install': {'nova.conf': {'main': {'test_conf': '2'}}}} services = {'cinder': True} # We use ordereddict here to make sure the plugins are in the # *wrong* order for testing. plugins = OrderedDict([ ('bar-plugin', 'git://git.openstack.org/openstack/bar-plugin'), ('foo-plugin', 'git://git.openstack.org/openstack/foo-plugin'), ]) p = dict(localrc=localrc, local_conf=local_conf, base_services=[], services=services, plugins=plugins, base_dir=self.tmpdir, path=os.path.join(self.tmpdir, 'test.local.conf')) lc = LocalConf(p.get('localrc'), p.get('local_conf'), p.get('base_services'), p.get('services'), p.get('plugins'), p.get('base_dir'), p.get('projects'), p.get('project')) lc.write(p['path']) plugins = [] with open(p['path']) as f: for line in f: if line.startswith('enable_plugin'): plugins.append(line.split()[1]) self.assertEqual(['foo-plugin', 'bar-plugin'], plugins)
def test_plugin_circular_deps(self): "Test that plugins with circular dependencies fail" os.makedirs(os.path.join(self.tmpdir, 'foo-plugin', 'devstack')) os.makedirs(os.path.join(self.tmpdir, 'foo-plugin', '.git')) os.makedirs(os.path.join(self.tmpdir, 'bar-plugin', 'devstack')) os.makedirs(os.path.join(self.tmpdir, 'bar-plugin', '.git')) with open(os.path.join( self.tmpdir, 'foo-plugin', 'devstack', 'settings'), 'w') as f: f.write('define_plugin foo\n') f.write('plugin_requires foo bar\n') with open(os.path.join( self.tmpdir, 'bar-plugin', 'devstack', 'settings'), 'w') as f: f.write('define_plugin bar\n') f.write('plugin_requires bar foo\n') localrc = {'test_localrc': '1'} local_conf = {'install': {'nova.conf': {'main': {'test_conf': '2'}}}} services = {'cinder': True} # We use ordereddict here to make sure the plugins are in the # *wrong* order for testing. plugins = OrderedDict([ ('bar', 'git://git.openstack.org/openstack/bar-plugin'), ('foo', 'git://git.openstack.org/openstack/foo-plugin'), ]) p = dict(localrc=localrc, local_conf=local_conf, base_services=[], services=services, plugins=plugins, base_dir=self.tmpdir, path=os.path.join(self.tmpdir, 'test.local.conf')) with self.assertRaises(Exception): lc = LocalConf(p.get('localrc'), p.get('local_conf'), p.get('base_services'), p.get('services'), p.get('plugins'), p.get('base_dir')) lc.write(p['path'])
def _init_localconf(p): lc = LocalConf(p.get('localrc'), p.get('local_conf'), p.get('base_services'), p.get('services'), p.get('plugins'), p.get('base_dir'), p.get('projects'), p.get('project'), p.get('tempest_plugins')) return lc
def test_libs_from_git(self): "Test that LIBS_FROM_GIT is auto-generated" projects = { 'git.openstack.org/openstack/nova': { 'required': True, 'short_name': 'nova', }, 'git.openstack.org/openstack/oslo.messaging': { 'required': True, 'short_name': 'oslo.messaging', }, 'git.openstack.org/openstack/devstack-plugin': { 'required': False, 'short_name': 'devstack-plugin', }, } project = { 'short_name': 'glance', } p = dict(base_services=[], base_dir='./test', path=os.path.join(self.tmpdir, 'test.local.conf'), projects=projects, project=project) lc = LocalConf(p.get('localrc'), p.get('local_conf'), p.get('base_services'), p.get('services'), p.get('plugins'), p.get('base_dir'), p.get('projects'), p.get('project')) lc.write(p['path']) lfg = None with open(p['path']) as f: for line in f: if line.startswith('LIBS_FROM_GIT'): lfg = line.strip().split('=')[1] self.assertEqual('nova,oslo.messaging,glance', lfg)
def test_plugins(self): "Test that plugins without dependencies work" localrc = {'test_localrc': '1'} local_conf = {'install': {'nova.conf': {'main': {'test_conf': '2'}}}} services = {'cinder': True} # We use ordereddict here to make sure the plugins are in the # *wrong* order for testing. plugins = OrderedDict([ ('bar', 'git://git.openstack.org/openstack/bar-plugin'), ('foo', 'git://git.openstack.org/openstack/foo-plugin'), ('baz', 'git://git.openstack.org/openstack/baz-plugin'), ]) p = dict(localrc=localrc, local_conf=local_conf, base_services=[], services=services, plugins=plugins, base_dir='./test', path=os.path.join(self.tmpdir, 'test.local.conf')) lc = LocalConf(p.get('localrc'), p.get('local_conf'), p.get('base_services'), p.get('services'), p.get('plugins'), p.get('base_dir')) lc.write(p['path']) plugins = [] with open(p['path']) as f: for line in f: if line.startswith('enable_plugin'): plugins.append(line.split()[1]) self.assertEqual(['bar', 'baz', 'foo'], plugins)