summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevan Franchini <twitch153@gentoo.org>2014-11-02 01:56:40 -0400
committerDevan Franchini <twitch153@gentoo.org>2015-06-19 15:48:33 -0400
commitbbf371a6dd55427e4a44b8566b63caa4b8507b32 (patch)
tree8be78d7e00b285a948b5973923ea194bdb5e80bb
parentAdds WebappDB and WebappSource tests to external test suite (diff)
downloadwebapp-config-bbf371a6dd55427e4a44b8566b63caa4b8507b32.tar.gz
webapp-config-bbf371a6dd55427e4a44b8566b63caa4b8507b32.tar.bz2
webapp-config-bbf371a6dd55427e4a44b8566b63caa4b8507b32.zip
Adds DotConfig tests to external test suite
tests/dtest.py: Removes WebappConfig.dotconfig from doctest listing tests/external.py: Adds tests for DotConfig class dotconfig.py: Removes doctests
-rw-r--r--WebappConfig/dotconfig.py61
-rw-r--r--WebappConfig/tests/dtest.py2
-rwxr-xr-xWebappConfig/tests/external.py47
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)