Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dax/jcl.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Rousselie <dax@happycoders.org>2008-05-20 21:36:54 +0400
committerDavid Rousselie <dax@happycoders.org>2008-05-20 21:36:54 +0400
commitbbedf036eb505f6f45cb68ffe903164865390e4c (patch)
tree25b4ec7b9970300e58e4929f6dcd27a3b34a9bc0 /src
parentc9f1f19aec891d6420b3699e7de3731bd3baf7f0 (diff)
More tests
darcs-hash:20080520173654-86b55-8e41007c4d8170cf7a087e1e13db35b84784c9ce.gz
Diffstat (limited to 'src')
-rw-r--r--src/jcl/jabber/disco.py5
-rw-r--r--src/jcl/jabber/tests/__init__.py4
-rw-r--r--src/jcl/model/__init__.py3
-rw-r--r--src/jcl/runner.py7
-rw-r--r--src/jcl/tests/runner.py126
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)