home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- import os
- import pwd
- DBUS_INTERFACE_NAME = 'com.ubuntu.checkbox'
- DBUS_BUS_NAME = 'com.ubuntu.checkbox'
-
- class Frontend(object):
- globals = { }
-
- def __init__(self, function, method):
- self._function = function
- self._method = method
-
-
- def __get__(self, instance, cls = None):
- self._instance = instance
- return self
-
-
- def __call__(self, *args, **kwargs):
- if self.user == 'root':
- return self._function(self._instance, *args, **kwargs)
- return getattr(self, self._method)(*args, **kwargs)
-
-
- def user(self):
- uid = os.getuid()
- user = pwd.getpwuid(uid)[0]
- return user
-
- user = property(user)
-
- def client(self):
- import dbus
- import dbus.mainloop.glib as dbus
- if 'client' in self.globals:
- return self.globals['client']
- dbus.mainloop.glib.DBusGMainLoop(set_as_default = True)
- bus = dbus.SystemBus()
- obj = bus.get_object(DBUS_BUS_NAME, '/checkbox')
- client = dbus.Interface(obj, DBUS_INTERFACE_NAME)
- return self.globals.setdefault('client', client)
-
- client = property(client)
-
- def get_test_result(self, *args, **kwargs):
- TestResult = TestResult
- import checkbox.test
- test = self._instance.test
- if test.user:
- (status, data, duration) = self.client.get_test_result(test.suite, test.name)
- return TestResult(self.test, status, data, float(duration))
- return self._function(self._instance, *args, **kwargs)
-
-
- def get_test_description(self, *args, **kwargs):
- test = self._instance.test
- if test.user:
- return self.client.get_test_description(test.suite, test.name)
- return self._function(self._instance, *args, **kwargs)
-
-
- def get_registry(self, *args, **kwargs):
- if self._instance.user:
- return self.client.get_registry(self._instance.__module__)
- return self._function(self._instance, *args, **kwargs)
-
-
-
- def frontend(method):
-
- def wrapper(func):
- return Frontend(func, method)
-
- return wrapper
-
-