diff options
-rw-r--r-- | WebappConfig/dotconfig.py | 61 | ||||
-rw-r--r-- | WebappConfig/tests/dtest.py | 2 | ||||
-rwxr-xr-x | WebappConfig/tests/external.py | 47 |
3 files changed, 43 insertions, 67 deletions
diff --git a/WebappConfig/dotconfig.py b/WebappConfig/dotconfig.py index 948fa90..0d5f661 100644 --- a/WebappConfig/dotconfig.py +++ b/WebappConfig/dotconfig.py @@ -35,63 +35,6 @@ class DotConfig: ''' This class handles the dotconfig file that will be written to all virtual install locations. - - A virtual install location has been prepared in the testfiles - directory: - - >>> import os.path - >>> here = os.path.dirname(os.path.realpath(__file__)) - >>> a = DotConfig(here + '/tests/testfiles/htdocs/horde') - >>> a.has_dotconfig() - True - - This directory contains no virtual install: - - >>> b = DotConfig(here + '/tests/testfiles/htdocs/empty') - >>> b.has_dotconfig() - False - - The horde install directory is empty: - - >>> a.is_empty() - - This install location has another web application installed:: - - >>> b = DotConfig(here + '/tests/testfiles/htdocs/complain') - >>> b.is_empty() - '!morecontents .webapp-cool-1.1.1' - - This prints what is installed in the horde directory (and - tests the read() function): - - >>> a.show_installed() - horde 3.0.5 - - This will pretend to write a .webapp file (this test has too many ellipsis): - - >>> OUT.color_off() - >>> a = DotConfig('/nowhere', pretend = True) - >>> a.write('www-apps', 'horde', '5.5.5', 'localhost', '/horde3', 'me:me') #doctest: +ELLIPSIS - * Would have written the following information into /nowhere/.webapp: - * # .webapp - ... - * - * WEB_CATEGORY="www-apps" - * WEB_PN="horde" - * WEB_PVR="5.5.5" - * WEB_INSTALLEDBY="..." - * WEB_INSTALLEDDATE="..." - * WEB_INSTALLEDFOR="me:me" - * WEB_HOSTNAME="localhost" - * WEB_INSTALLDIR="/horde3" - - Delete the .webapp file if possible: - - >>> a = DotConfig(here + '/tests/testfiles/htdocs/horde', pretend = True) - >>> a.kill() #doctest: +ELLIPSIS - * Would have removed .../tests/testfiles/htdocs/horde/.webapp - True - ''' def __init__(self, @@ -290,7 +233,3 @@ class DotConfig: else: OUT.notice('--- ' + empty) return False - -if __name__ == '__main__': - import doctest, sys - doctest.testmod(sys.modules[__name__]) diff --git a/WebappConfig/tests/dtest.py b/WebappConfig/tests/dtest.py index 645aee7..8dab47a 100644 --- a/WebappConfig/tests/dtest.py +++ b/WebappConfig/tests/dtest.py @@ -8,7 +8,6 @@ import unittest, doctest, sys -import WebappConfig.dotconfig import WebappConfig.ebuild import WebappConfig.filetype import WebappConfig.protect @@ -16,7 +15,6 @@ import WebappConfig.worker def test_suite(): return unittest.TestSuite(( - doctest.DocTestSuite(WebappConfig.dotconfig), doctest.DocTestSuite(WebappConfig.ebuild), doctest.DocTestSuite(WebappConfig.filetype), doctest.DocTestSuite(WebappConfig.protect), diff --git a/WebappConfig/tests/external.py b/WebappConfig/tests/external.py index 3263c1a..ffe76e8 100755 --- a/WebappConfig/tests/external.py +++ b/WebappConfig/tests/external.py @@ -22,10 +22,11 @@ import os import unittest import sys -from WebappConfig.content import Contents -from WebappConfig.db import WebappDB, WebappSource -from WebappConfig.debug import OUT -from warnings import filterwarnings, resetwarnings +from WebappConfig.content import Contents +from WebappConfig.db import WebappDB, WebappSource +from WebappConfig.debug import OUT +from WebappConfig.dotconfig import DotConfig +from warnings import filterwarnings, resetwarnings HERE = os.path.dirname(os.path.realpath(__file__)) @@ -253,6 +254,44 @@ class WebappSourceTest(unittest.TestCase): self.assertEqual(source.packageavail(), 1) +class DotConfigTest(unittest.TestCase): + def test_has_dotconfig(self): + dotconf = DotConfig('/'.join((HERE, 'testfiles', 'htdocs', 'horde'))) + self.assertTrue(dotconf.has_dotconfig()) + + dotconf = DotConfig('/'.join((HERE, 'testfiles', 'htdocs', 'empty'))) + self.assertFalse(dotconf.has_dotconfig()) + + def test_is_empty(self): + dotconf = DotConfig('/'.join((HERE, 'testfiles', 'htdocs', 'horde'))) + self.assertEqual(dotconf.is_empty(), None) + + dotconf = DotConfig('/'.join((HERE, 'testfiles', 'htdocs', 'complain'))) + self.assertEqual(dotconf.is_empty(), '!morecontents .webapp-cool-1.1.1') + + def test_show_installed(self): + dotconf = DotConfig('/'.join((HERE, 'testfiles', 'htdocs', 'horde'))) + dotconf.show_installed() + output = sys.stdout.getvalue().split('\n') + self.assertEqual(output[0], 'horde 3.0.5') + + def test_install(self): + dotconf = DotConfig('/nowhere', pretend=True) + dotconf.write('www-apps', 'horde', '5.5.5', 'localhost', '/horde3', + 'me:me') + output = sys.stdout.getvalue().split('\n') + self.assertEqual(output[14], '* WEB_INSTALLDIR="/horde3"') + + def test_remove(self): + dotconf = DotConfig('/'.join((HERE, 'testfiles', 'htdocs', 'horde')), + pretend=True) + self.assertTrue(dotconf.kill()) + output = sys.stdout.getvalue().split('\n') + self.assertEqual(output[0], '* Would have removed ' + + '/'.join((HERE, 'testfiles', 'htdocs', 'horde', + '.webapp'))) + + if __name__ == '__main__': filterwarnings('ignore') unittest.main(module=__name__, buffer=True) |