From f62c878a5367fde531172a77e407b97e5d30e688 Mon Sep 17 00:00:00 2001 From: Michael Ziegler Date: Mon, 21 Dec 2009 19:25:36 +0100 Subject: [PATCH] clear cache, fix a few glitches in the tests --- pyweb/mumble/MumbleCtlDbus.py | 22 +++++++++++++++++++--- pyweb/mumble/mctl.py | 4 ++++ pyweb/mumble/models.py | 5 +---- pyweb/mumble/murmurenvutils.py | 4 +--- pyweb/mumble/testrunner.py | 9 +++++++-- pyweb/mumble/tests.py | 2 +- 6 files changed, 33 insertions(+), 13 deletions(-) diff --git a/pyweb/mumble/MumbleCtlDbus.py b/pyweb/mumble/MumbleCtlDbus.py index 982bb8e..1f121cb 100644 --- a/pyweb/mumble/MumbleCtlDbus.py +++ b/pyweb/mumble/MumbleCtlDbus.py @@ -56,16 +56,32 @@ class MumbleCtlDbus_118(MumbleCtlBase): return dbus.Interface( dbus.SystemBus().get_object( self.dbus_base, '/%d' % srvid ), 'net.sourceforge.mumble.Murmur' ); def getVersion( self ): - return MumbleCtlDbus_118.convertDbusTypeToNative( self.meta.getVersion() ) + return MumbleCtlDbus_118.convertDbusTypeToNative( self.meta.getVersion() ); def getAllConf(self, srvid): - return MumbleCtlDbus_118.convertDbusTypeToNative(self.meta.getAllConf(dbus.Int32(srvid))) + conf = self.meta.getAllConf(dbus.Int32(srvid)) + + info = {}; + for key in conf: + if key == "playername": + info['username'] = conf[key]; + else: + info[str(key)] = conf[key]; + return info; def setConf(self, srvid, key, value): self.meta.setConf(dbus.Int32( srvid ), key, value) def getDefaultConf(self): - return MumbleCtlDbus_118.convertDbusTypeToNative(self.meta.getDefaultConf()) + conf = self.meta.getDefaultConf() + + info = {}; + for key in conf: + if key == "playername": + info['username'] = conf[key]; + else: + info[str(key)] = conf[key]; + return info; def start( self, srvid ): self.meta.start( srvid ); diff --git a/pyweb/mumble/mctl.py b/pyweb/mumble/mctl.py index 1745cd3..e7c6b1b 100644 --- a/pyweb/mumble/mctl.py +++ b/pyweb/mumble/mctl.py @@ -116,6 +116,10 @@ class MumbleCtlBase (object): MumbleCtlBase.cache[connstring] = ctl; return ctl; + + @staticmethod + def clearCache(): + MumbleCtlBase.cache = {}; diff --git a/pyweb/mumble/models.py b/pyweb/mumble/models.py index 7b811df..06fcc89 100644 --- a/pyweb/mumble/models.py +++ b/pyweb/mumble/models.py @@ -217,10 +217,7 @@ class Mumble( models.Model ): self.obfsc = bool( find_in_dicts( 'obfuscate' ) ); pldefault = self._meta.get_field_by_name('player')[0].default; - if self.ctl.getVersion()[:2] == ( 1, 2 ): - self.player = find_in_dicts( ( 'username', 'playername' ), pldefault ); - else: - self.player = find_in_dicts( 'playername', pldefault ); + self.player = find_in_dicts( ( 'username', 'playername' ), pldefault ); chdefault = self._meta.get_field_by_name('channel')[0].default; self.channel = find_in_dicts( 'channelname', chdefault ); diff --git a/pyweb/mumble/murmurenvutils.py b/pyweb/mumble/murmurenvutils.py index 6eb46b9..9626be0 100644 --- a/pyweb/mumble/murmurenvutils.py +++ b/pyweb/mumble/murmurenvutils.py @@ -66,9 +66,6 @@ def run_callback( version, callback, *args, **kwargs ): try: result = callback( process, *args, **kwargs ); - except Exception, err: - raise err; - else: if type(result) == tuple: if result[1]: update_dbase( version ); @@ -130,6 +127,7 @@ def run_murmur( version ): while process.canRead(0.5): line = process.stdout.readline(); + #print "read line:", line if line == 'DBus registration succeeded\n': capa.has_dbus = True; elif line == 'MurmurIce: Endpoint "tcp -h 127.0.0.1 -p 6502" running\n': diff --git a/pyweb/mumble/testrunner.py b/pyweb/mumble/testrunner.py index 998c9c8..d2b6b2f 100644 --- a/pyweb/mumble/testrunner.py +++ b/pyweb/mumble/testrunner.py @@ -69,9 +69,11 @@ def run_mumble_tests( verbosity=1, interactive=True ): os.environ['MURMUR_CONNSTR'] = connstrings[method]; settings.DEFAULT_CONN = connstrings[method]; + settings.SLICE_VERSION = [ int(dgt) for dgt in version.split('.') ]; - print "Waiting for user to connect (60 seconds)." - wait_for_user( process, timeout=60 ); + if not process.capabilities.has_users: + print "Waiting for user to connect (60 seconds)." + wait_for_user( process, timeout=60 ); wr_failed_tests += django_run_tests( ('mumble',), verbosity, interactive, [] ); else: @@ -81,7 +83,10 @@ def run_mumble_tests( verbosity=1, interactive=True ): failed_tests = 0; + from mctl import MumbleCtlBase + for version in get_available_versions(): + MumbleCtlBase.clearCache(); failed_tests += run_callback( version, django_run_tests_wrapper, version ); return failed_tests; diff --git a/pyweb/mumble/tests.py b/pyweb/mumble/tests.py index 5cc289e..781ed58 100644 --- a/pyweb/mumble/tests.py +++ b/pyweb/mumble/tests.py @@ -184,7 +184,7 @@ class DataReading( TestCase ): self.assert_( hasattr( rule, "deny" ) ); for grp in groups: - if self.murmur.ctl.method == "ICE" and self.murmur.version[:2] == ( 1, 2 ): + if self.murmur.ctl.method == "ICE": import Murmur self.assertEquals( type( grp ), Murmur.Group ); else: