コード例 #1
0
    def test_crashes(self):
        exc = self.assertRaises(mitogen.core.CallError,
                                lambda: self.local.call(function_that_fails))

        s = mitogen.core.to_text(exc)
        etype, _, s = str_partition(s, u': ')
        self.assertEqual(etype, u'plain_old_module.MyError')

        msg, _, s = str_partition(s, u'\n')
        self.assertEqual(msg, 'exception text')

        # Traceback
        self.assertGreater(len(s), 0)
コード例 #2
0
ファイル: master.py プロジェクト: danielgolabek/mitogen
    def _send_module_and_related(self, stream, fullname):
        try:
            tup = self._build_tuple(fullname)
            for name in tup[4]:  # related
                parent, _, _ = str_partition(name, '.')
                if parent != fullname and parent not in stream.sent_modules:
                    # Parent hasn't been sent, so don't load submodule yet.
                    continue

                self._send_load_module(stream, name)
            self._send_load_module(stream, fullname)
        except Exception:
            LOG.debug('While importing %r', fullname, exc_info=True)
            self._send_module_load_failed(stream, fullname)
コード例 #3
0
    def _parse(self, fp):
        """
        linux-pam-1.3.1/modules/pam_env/pam_env.c#L207
        """
        for line in fp:
            # '   #export foo=some var  ' -> ['#export', 'foo=some var  ']
            bits = shlex_split(line, comments=True)
            if (not bits) or bits[0].startswith('#'):
                continue

            if bits[0] == u'export':
                bits.pop(0)

            key, sep, value = str_partition(u' '.join(bits), u'=')
            if key and sep:
                yield key, value