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)
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)
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