From d939fc920fe5d69768b017c873f1bbef5f4b2795 Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Tue, 20 Mar 2012 13:06:16 -0400 Subject: organized testsuite to mirror src updated TestOptions removed terrifically out-of-date TestFrame and TestPlugin wrote unit tests for Metadata plugin various tweaks and bugfixes for Metadata plugin --- testsuite/TestPlugin.py | 122 ------------------------------------------------ 1 file changed, 122 deletions(-) delete mode 100644 testsuite/TestPlugin.py (limited to 'testsuite/TestPlugin.py') diff --git a/testsuite/TestPlugin.py b/testsuite/TestPlugin.py deleted file mode 100644 index aa619249a..000000000 --- a/testsuite/TestPlugin.py +++ /dev/null @@ -1,122 +0,0 @@ -import gamin -import lxml.etree -import os - -import Bcfg2.Server.Core -from Bcfg2.Server.Plugin import EntrySet - - -class es_testtype(object): - def __init__(self, name, properties, specific): - self.name = name - self.properties = properties - self.specific = specific - self.handled = 0 - self.built = 0 - - def handle_event(self, event): - self.handled += 1 - - def bind_entry(self, entry, metadata): - entry.set('bound', '1') - entry.set('name', self.name) - self.built += 1 - - -class metadata(object): - def __init__(self, hostname): - self.hostname = hostname - self.groups = ['base', 'debian'] - -#FIXME add test_specific - - -class test_entry_set(object): - def __init__(self): - self.dirname = '/tmp/estest-%d' % os.getpid() - os.path.isdir(self.dirname) or os.mkdir(self.dirname) - self.metadata = metadata('testhost') - self.es = EntrySet('template', self.dirname, None, es_testtype) - self.e = Bcfg2.Server.Core.GaminEvent(1, 'template', - gamin.GAMExists) - - def test_init(self): - es = self.es - e = self.e - e.action = 'exists' - es.handle_event(e) - es.handle_event(e) - assert len(es.entries) == 1 - assert list(es.entries.values())[0].handled == 2 - e.action = 'changed' - es.handle_event(e) - assert list(es.entries.values())[0].handled == 3 - - def test_info(self): - """Test info and info.xml handling.""" - es = self.es - e = self.e - dirname = self.dirname - metadata = self.metadata - - # test 'info' handling - assert es.metadata['group'] == 'root' - self.mk_info(dirname) - e.filename = 'info' - e.action = 'exists' - es.handle_event(e) - assert es.metadata['group'] == 'sys' - e.action = 'deleted' - es.handle_event(e) - assert es.metadata['group'] == 'root' - - # test 'info.xml' handling - assert es.infoxml == None - self.mk_info_xml(dirname) - e.filename = 'info.xml' - e.action = 'exists' - es.handle_event(e) - assert es.infoxml - e.action = 'deleted' - es.handle_event(e) - assert es.infoxml == None - - def test_file_building(self): - """Test file building.""" - self.test_init() - ent = lxml.etree.Element('foo') - self.es.bind_entry(ent, self.metadata) - print(list(self.es.entries.values())[0]) - assert list(self.es.entries.values())[0].built == 1 - - def test_host_specific_file_building(self): - """Add a host-specific template and build it.""" - self.e.filename = 'template.H_%s' % self.metadata.hostname - self.e.action = 'exists' - self.es.handle_event(self.e) - assert len(self.es.entries) == 1 - ent = lxml.etree.Element('foo') - self.es.bind_entry(ent, self.metadata) - # FIXME need to test that it built the _right_ file here - - def test_deletion(self): - """Test deletion of files.""" - self.test_init() - self.e.filename = 'template' - self.e.action = 'deleted' - self.es.handle_event(self.e) - assert len(self.es.entries) == 0 - - # TODO - how to clean up the temp dir & files after tests done? - - def mk_info(self, dir): - i = open("%s/info" % dir, 'w') - i.write('owner: root\n') - i.write('group: sys\n') - i.write('perms: 0600\n') - i.close - - def mk_info_xml(self, dir): - i = open("%s/info.xml" % dir, 'w') - i.write('\n') - i.close -- cgit v1.2.3-1-g7c22