diff --git a/src/jcl/jabber/component.py b/src/jcl/jabber/component.py index 457b6f8..0dcdd79 100644 --- a/src/jcl/jabber/component.py +++ b/src/jcl/jabber/component.py @@ -868,7 +868,7 @@ class AccountManager(object): resource = "" model.db_connect() accounts = account.get_accounts(bare_from_jid, account_class) - if accounts: + if accounts.count() > 0: for _account in accounts: yield (_account, resource, account_type) model.db_disconnect() diff --git a/src/jcl/jabber/tests/__init__.py b/src/jcl/jabber/tests/__init__.py index 550e5fd..6204235 100644 --- a/src/jcl/jabber/tests/__init__.py +++ b/src/jcl/jabber/tests/__init__.py @@ -6,13 +6,13 @@ import unittest from jcl.jabber.tests import component, feeder, command, message, presence def suite(): - suite = unittest.TestSuite() - suite.addTest(component.suite()) - suite.addTest(feeder.suite()) - suite.addTest(command.suite()) - suite.addTest(message.suite()) - suite.addTest(presence.suite()) - return suite + test_suite = unittest.TestSuite() + test_suite.addTest(component.suite()) + test_suite.addTest(feeder.suite()) + test_suite.addTest(command.suite()) + test_suite.addTest(message.suite()) + test_suite.addTest(presence.suite()) + return test_suite if __name__ == '__main__': unittest.main(defaultTest='suite') diff --git a/src/jcl/jabber/tests/command.py b/src/jcl/jabber/tests/command.py index 4d889c2..00f2db1 100644 --- a/src/jcl/jabber/tests/command.py +++ b/src/jcl/jabber/tests/command.py @@ -64,7 +64,6 @@ class JCLCommandManager_TestCase(JCLTestCase): Example2Account, LegacyJID, User]) self.config_file = tempfile.mktemp(".conf", "jcltest", "/tmp") - print str(self.config_file) self.config = ConfigParser() self.config.read(self.config_file) self.comp = JCLComponent("jcl.test.com", diff --git a/src/jcl/model/__init__.py b/src/jcl/model/__init__.py index 70f1daa..bc0e4e6 100644 --- a/src/jcl/model/__init__.py +++ b/src/jcl/model/__init__.py @@ -6,7 +6,6 @@ from sqlobject.dbconnection import connectionForURI import jcl.model -db_connected = False db_connection_str = "" # create a hub to attach a per thread connection diff --git a/src/jcl/model/account.py b/src/jcl/model/account.py index ab896cd..1be7311 100644 --- a/src/jcl/model/account.py +++ b/src/jcl/model/account.py @@ -80,9 +80,7 @@ def get_all_users(user_class=User, limit=None, filter=None, model.db_connect() users = user_class.select(clause=filter, limit=limit, distinct=distinct) - for user in users: - yield user - model.db_disconnect() + return users class Account(InheritableSQLObject): """Base Account class""" @@ -183,7 +181,6 @@ def get_account(bare_user_jid, name, account_class=Account): return result def get_accounts(bare_user_jid, account_class=Account, filter=None): - model.db_connect() if filter is not None: filter = AND(AND(Account.q.userID == User.q.id, User.q.jid == unicode(bare_user_jid)), @@ -192,26 +189,18 @@ def get_accounts(bare_user_jid, account_class=Account, filter=None): filter = AND(Account.q.userID == User.q.id, User.q.jid == unicode(bare_user_jid)) accounts = account_class.select(filter) - if accounts.count() == 0: - model.db_disconnect() - return - for _account in accounts: - yield _account - model.db_disconnect() + return accounts def get_all_accounts(account_class=Account, filter=None, limit=None): model.db_connect() accounts = account_class.select(clause=filter, limit=limit) - for _account in accounts: - yield _account - model.db_disconnect() + return accounts def get_accounts_count(bare_user_jid, account_class=Account): model.db_connect() accounts_count = account_class.select(\ AND(Account.q.userID == User.q.id, User.q.jid == unicode(bare_user_jid))).count() - model.db_disconnect() return accounts_count def get_all_accounts_count(account_class=Account, filter=None): @@ -220,7 +209,6 @@ def get_all_accounts_count(account_class=Account, filter=None): accounts_count = account_class.select().count() else: accounts_count = account_class.select(filter).count() - model.db_disconnect() return accounts_count class PresenceAccount(Account): @@ -354,9 +342,7 @@ def get_legacy_jids(bare_to_jid): AND(AND(LegacyJID.q.accountID == Account.q.id, Account.q.userID == User.q.id), User.q.jid == bare_to_jid)) - for legacy_jid in legacy_jids: - yield legacy_jid - model.db_disconnect() + return legacy_jids class LegacyJID(InheritableSQLObject): _connection = model.hub diff --git a/src/jcl/model/tests/account.py b/src/jcl/model/tests/account.py index 431c373..6d5e181 100644 --- a/src/jcl/model/tests/account.py +++ b/src/jcl/model/tests/account.py @@ -273,9 +273,9 @@ class Account_TestCase(InheritableAccount_TestCase): model.db_disconnect() class PresenceAccount_TestCase(InheritableAccount_TestCase): - def setUp(self): + def setUp(self, tables=[]): JCLTestCase.setUp(self, tables=[User, Account, PresenceAccount, - PresenceAccountExample]) + PresenceAccountExample] + tables) model.db_connect() self.account = PresenceAccountExample(\ user=User(jid="test1@test.com"), diff --git a/src/jcl/runner.py b/src/jcl/runner.py index c532304..1a33f1d 100644 --- a/src/jcl/runner.py +++ b/src/jcl/runner.py @@ -26,12 +26,10 @@ import sys from ConfigParser import ConfigParser from getopt import gnu_getopt -from sqlobject import * - from jcl.lang import Lang from jcl.jabber.component import JCLComponent import jcl.model as model -from jcl.model.account import Account, PresenceAccount +from jcl.model.account import Account, PresenceAccount, User, LegacyJID class JCLRunner(object): def __init__(self, component_name, component_version): @@ -42,7 +40,7 @@ class JCLRunner(object): """ self.component_name = component_name self.component_version = component_version - self.config_file = "jmc.conf" + self.config_file = "jcl.conf" self.server = "localhost" self.port = 5347 self.secret = "secret" @@ -179,6 +177,8 @@ class JCLRunner(object): def setup_db(self): Account.createTable(ifNotExists=True) PresenceAccount.createTable(ifNotExists=True) + User.createTable(ifNotExists=True) + LegacyJID.createTable(ifNotExists=True) def setup_pidfile(self): pidfile = open(self.pid_file, "w") diff --git a/src/jcl/tests/runner.py b/src/jcl/tests/runner.py index 323798a..662cf7c 100644 --- a/src/jcl/tests/runner.py +++ b/src/jcl/tests/runner.py @@ -31,7 +31,7 @@ import jcl from jcl.runner import JCLRunner import jcl.model as model -from jcl.model.account import Account, PresenceAccount +from jcl.model.account import Account, PresenceAccount, User, LegacyJID if sys.platform == "win32": DB_DIR = "/c|/temp/" @@ -48,7 +48,7 @@ class JCLRunner_TestCase(unittest.TestCase): def test_configure_default(self): self.runner.configure() - self.assertEquals(self.runner.config_file, "jmc.conf") + self.assertEquals(self.runner.config_file, "jcl.conf") self.assertEquals(self.runner.server, "localhost") self.assertEquals(self.runner.port, 5347) self.assertEquals(self.runner.secret, "secret") @@ -131,6 +131,8 @@ class JCLRunner_TestCase(unittest.TestCase): # dropTable should succeed because tables should exist 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))