diff options
author | David Rousselie <dax@happycoders.org> | 2008-05-20 21:36:54 +0400 |
---|---|---|
committer | David Rousselie <dax@happycoders.org> | 2008-05-20 21:36:54 +0400 |
commit | bbedf036eb505f6f45cb68ffe903164865390e4c (patch) | |
tree | 25b4ec7b9970300e58e4929f6dcd27a3b34a9bc0 /src | |
parent | c9f1f19aec891d6420b3699e7de3731bd3baf7f0 (diff) |
More tests
darcs-hash:20080520173654-86b55-8e41007c4d8170cf7a087e1e13db35b84784c9ce.gz
Diffstat (limited to 'src')
-rw-r--r-- | src/jcl/jabber/disco.py | 5 | ||||
-rw-r--r-- | src/jcl/jabber/tests/__init__.py | 4 | ||||
-rw-r--r-- | src/jcl/model/__init__.py | 3 | ||||
-rw-r--r-- | src/jcl/runner.py | 7 | ||||
-rw-r--r-- | src/jcl/tests/runner.py | 126 |
5 files changed, 123 insertions, 22 deletions
diff --git a/src/jcl/jabber/disco.py b/src/jcl/jabber/disco.py index 7eda894..71c0d1e 100644 --- a/src/jcl/jabber/disco.py +++ b/src/jcl/jabber/disco.py @@ -129,7 +129,10 @@ class AccountTypeDiscoGetItemsHandler(DiscoHandler): self.__logger = logging.getLogger("jcl.jabber.AccountTypeDiscoGetItemsHandler") def handle(self, stanza, lang_class, node, disco_obj, data): - """Discovery get_items on an account type node""" + """ + Discovery get_items on an account type node: + return account list + """ account_type = data from_jid = stanza.get_from() self.__logger.debug("Listing account for " + account_type) diff --git a/src/jcl/jabber/tests/__init__.py b/src/jcl/jabber/tests/__init__.py index 17bb20a..c05cd8a 100644 --- a/src/jcl/jabber/tests/__init__.py +++ b/src/jcl/jabber/tests/__init__.py @@ -5,7 +5,8 @@ import unittest import jcl.jabber as jabber -from jcl.jabber.tests import component, feeder, command, message, presence +from jcl.jabber.tests import component, feeder, command, message, presence, \ + disco class HandlerType1: pass @@ -36,6 +37,7 @@ def suite(): test_suite.addTest(command.suite()) test_suite.addTest(message.suite()) test_suite.addTest(presence.suite()) + test_suite.addTest(disco.suite()) return test_suite if __name__ == '__main__': diff --git a/src/jcl/model/__init__.py b/src/jcl/model/__init__.py index bc0e4e6..b1ac6ab 100644 --- a/src/jcl/model/__init__.py +++ b/src/jcl/model/__init__.py @@ -17,8 +17,7 @@ def db_connect(): pool) associated to the current thread. """ #if not jcl.model.db_connected: - jcl.model.hub.threadConnection = \ - connectionForURI(db_connection_str) + jcl.model.hub.threadConnection = connectionForURI(db_connection_str) # account.hub.threadConnection.debug = True #jcl.model.db_connected = True diff --git a/src/jcl/runner.py b/src/jcl/runner.py index 5c1537e..10a81ae 100644 --- a/src/jcl/runner.py +++ b/src/jcl/runner.py @@ -115,8 +115,8 @@ class JCLRunner(object): cleanopts[arg][1](value) def __apply_configfile(self, commandline_args, cleanopts): - if commandline_args.has_key("config_file"): - self.config_file = commandline_args["config_file"] + if commandline_args.has_key("config-file"): + self.config_file = commandline_args["config-file"] elif commandline_args.has_key("c"): self.config_file = commandline_args["c"] self.config = ConfigParser() @@ -162,6 +162,8 @@ class JCLRunner(object): if commandline_args.has_key("debug") or commandline_args.has_key("d"): self.debug = True self.logger.debug("Debug activated") + else: + self.debug = False self.__apply_configfile(commandline_args, cleanopts) self.__apply_commandline_args(commandline_args, cleanopts) if self.log_stdout: @@ -195,7 +197,6 @@ class JCLRunner(object): debug = property(get_debug, set_debug) - def setup_db(self): Account.createTable(ifNotExists=True) PresenceAccount.createTable(ifNotExists=True) diff --git a/src/jcl/tests/runner.py b/src/jcl/tests/runner.py index 2afc47c..3d3df2e 100644 --- a/src/jcl/tests/runner.py +++ b/src/jcl/tests/runner.py @@ -24,14 +24,15 @@ import unittest import sys import os import tempfile +import logging from sqlobject import * import jcl from jcl.runner import JCLRunner - import jcl.model as model from jcl.model.account import Account, PresenceAccount, User, LegacyJID +from jcl.jabber.component import JCLComponent if sys.platform == "win32": DB_DIR = "/c|/temp/" @@ -57,6 +58,8 @@ class JCLRunner_TestCase(unittest.TestCase): self.assertEquals(self.runner.db_url, "sqlite:///var/spool/jabber/jcl.db") self.assertEquals(self.runner.pid_file, "/var/run/jabber/jcl.pid") self.assertFalse(self.runner.debug) + self.assertEquals(self.runner.logger.getEffectiveLevel(), + logging.CRITICAL) def test_configure_configfile(self): self.runner.config_file = "src/jcl/tests/jcl.conf" @@ -69,6 +72,8 @@ class JCLRunner_TestCase(unittest.TestCase): self.assertEquals(self.runner.db_url, "test_sqlite://root@localhost/var/spool/jabber/test_jcl.db") self.assertEquals(self.runner.pid_file, "/var/run/jabber/test_jcl.pid") self.assertFalse(self.runner.debug) + self.assertEquals(self.runner.logger.getEffectiveLevel(), + logging.CRITICAL) def test_configure_uncomplete_configfile(self): self.runner.config_file = "src/jcl/tests/uncomplete_jcl.conf" @@ -82,15 +87,17 @@ class JCLRunner_TestCase(unittest.TestCase): # pid_file is not in uncmplete_jcl.conf, must be default value self.assertEquals(self.runner.pid_file, "/var/run/jabber/jcl.pid") self.assertFalse(self.runner.debug) + self.assertEquals(self.runner.logger.getEffectiveLevel(), + logging.CRITICAL) def test_configure_commandline_shortopt(self): - sys.argv = ["", "-c", "src/jcl/tests/jcl.conf", \ - "-S", "test2_localhost", \ - "-P", "43", \ - "-s", "test2_secret", \ - "-j", "test2_jcl.localhost", \ - "-l", "test2_en", \ - "-u", "sqlite:///tmp/test_jcl.db", \ + sys.argv = ["", "-c", "src/jcl/test/jcl.conf", + "-S", "test2_localhost", + "-P", "43", + "-s", "test2_secret", + "-j", "test2_jcl.localhost", + "-l", "test2_en", + "-u", "sqlite:///tmp/test_jcl.db", "-p", "/tmp/test_jcl.pid"] self.runner.configure() self.assertEquals(self.runner.server, "test2_localhost") @@ -101,15 +108,17 @@ class JCLRunner_TestCase(unittest.TestCase): self.assertEquals(self.runner.db_url, "sqlite:///tmp/test_jcl.db") self.assertEquals(self.runner.pid_file, "/tmp/test_jcl.pid") self.assertFalse(self.runner.debug) + self.assertEquals(self.runner.logger.getEffectiveLevel(), + logging.CRITICAL) def test_configure_commandline_longopt(self): - sys.argv = ["", "--config-file", "src/jcl/tests/jcl.conf", \ - "--server", "test2_localhost", \ - "--port", "43", \ - "--secret", "test2_secret", \ - "--service-jid", "test2_jcl.localhost", \ - "--language", "test2_en", \ - "--db-url", "sqlite:///tmp/test_jcl.db", \ + sys.argv = ["", "--config-file", "src/jcl/tests/jcl.conf", + "--server", "test2_localhost", + "--port", "43", + "--secret", "test2_secret", + "--service-jid", "test2_jcl.localhost", + "--language", "test2_en", + "--db-url", "sqlite:///tmp/test_jcl.db", "--pid-file", "/tmp/test_jcl.pid"] self.runner.configure() self.assertEquals(self.runner.server, "test2_localhost") @@ -120,6 +129,66 @@ class JCLRunner_TestCase(unittest.TestCase): self.assertEquals(self.runner.db_url, "sqlite:///tmp/test_jcl.db") self.assertEquals(self.runner.pid_file, "/tmp/test_jcl.pid") self.assertFalse(self.runner.debug) + self.assertEquals(self.runner.logger.getEffectiveLevel(), + logging.CRITICAL) + + def test_configure_commandline_shortopts_configfile(self): + sys.argv = ["", "-c", "src/jcl/tests/jcl.conf"] + self.runner.configure() + self.assertEquals(self.runner.server, "test_localhost") + self.assertEquals(self.runner.port, 42) + self.assertEquals(self.runner.secret, "test_secret") + self.assertEquals(self.runner.service_jid, "test_jcl.localhost") + self.assertEquals(self.runner.language, "test_en") + self.assertEquals(self.runner.db_url, "test_sqlite://root@localhost/var/spool/jabber/test_jcl.db") + self.assertEquals(self.runner.pid_file, "/var/run/jabber/test_jcl.pid") + self.assertFalse(self.runner.debug) + self.assertEquals(self.runner.logger.getEffectiveLevel(), + logging.CRITICAL) + + def test_configure_commandline_longopts_configfile(self): + sys.argv = ["", "--config-file", "src/jcl/tests/jcl.conf"] + self.runner.configure() + self.assertEquals(self.runner.server, "test_localhost") + self.assertEquals(self.runner.port, 42) + self.assertEquals(self.runner.secret, "test_secret") + self.assertEquals(self.runner.service_jid, "test_jcl.localhost") + self.assertEquals(self.runner.language, "test_en") + self.assertEquals(self.runner.db_url, "test_sqlite://root@localhost/var/spool/jabber/test_jcl.db") + self.assertEquals(self.runner.pid_file, "/var/run/jabber/test_jcl.pid") + self.assertFalse(self.runner.debug) + self.assertEquals(self.runner.logger.getEffectiveLevel(), + logging.CRITICAL) + + def test_configure_commandline_short_debug(self): + sys.argv = ["", "-d"] + old_debug_func = self.runner.logger.debug + old_info_func = self.runner.logger.debug + try: + self.runner.logger.debug = lambda msg: None + self.runner.logger.info = lambda msg: None + self.runner.configure() + self.assertTrue(self.runner.debug) + self.assertEquals(self.runner.logger.getEffectiveLevel(), + logging.DEBUG) + finally: + self.runner.logger.debug = old_debug_func + self.runner.logger.info = old_info_func + + def test_configure_commandline_long_debug(self): + sys.argv = ["", "--debug"] + old_debug_func = self.runner.logger.debug + old_info_func = self.runner.logger.debug + try: + self.runner.logger.debug = lambda msg: None + self.runner.logger.info = lambda msg: None + self.runner.configure() + self.assertTrue(self.runner.debug) + self.assertEquals(self.runner.logger.getEffectiveLevel(), + logging.DEBUG) + finally: + self.runner.logger.debug = old_debug_func + self.runner.logger.info = old_info_func def test_setup_pidfile(self): try: @@ -132,6 +201,33 @@ class JCLRunner_TestCase(unittest.TestCase): finally: os.remove("/tmp/jcl.pid") + def test_run(self): + """Test if run method of JCLComponent is executed""" + self.has_run_func = False + def run_func(component_self): + self.has_run_func = True + return False + + self.runner.pid_file = "/tmp/jcl.pid" + db_path = tempfile.mktemp("db", "jcltest", DB_DIR) + db_url = "sqlite://" + db_path + self.runner.db_url = db_url + self.runner.config = None + old_run_func = JCLComponent.run + JCLComponent.run = run_func + try: + self.runner.run() + finally: + JCLComponent.run = old_run_func + self.assertTrue(self.has_run_func) + Account.dropTable() + PresenceAccount.dropTable() + User.dropTable() + LegacyJID.dropTable() + model.db_disconnect() + os.unlink(db_path) + self.assertFalse(os.access("/tmp/jcl.pid", os.F_OK)) + def test__run(self): self.runner.pid_file = "/tmp/jcl.pid" db_path = tempfile.mktemp("db", "jcltest", DB_DIR) |