def __init__(self, i_want_broken_xhtml_support=False): if OLD_MECHANIZE_VERSION: forms_factory = mechanize.FormsFactory( form_parser_class=ClientForm.XHTMLCompatibleFormParser) else: forms_factory = mechanize.FormsFactory( form_parser_class=mechanize.XHTMLCompatibleFormParser) mechanize.Factory.__init__( self, forms_factory=forms_factory, links_factory=mechanize.LinksFactory(), title_factory=mechanize.TitleFactory(), response_type_finder=mechanize._html.ResponseTypeFinder( allow_xhtml=i_want_broken_xhtml_support), )
def __init__(self, logindata, chatter): self.logindata = logindata factory = mechanize.DefaultFactory() factory._forms_factory = mechanize.FormsFactory( form_parser_class=mechanize.XHTMLCompatibleFormParser) self.br = mechanize.Browser(factory=factory) self.quiet = chatter['quiet'] self.debug = chatter['debug'] br = self.br cj = cookielib.LWPCookieJar() br.set_cookiejar(cj) br.set_handle_equiv(True) #br.set_handle_gzip(True) br.set_handle_redirect(True) br.set_handle_referer(True) br.set_handle_robots(False) br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) if self.debug: # make a directory for debugging output self.debugdir = tempfile.mkdtemp(prefix='aib2ofx_') print 'WARNING: putting *sensitive* debug data in %s' % self.debugdir self.logger = logging.getLogger("mechanize") fh = logging.FileHandler(self.debugdir + '/mechanize.log', 'w') fm = CleansingFormatter('%(asctime)s\n%(message)s') fh.setFormatter(fm) self.logger.addHandler(fh) self.logger.setLevel(logging.DEBUG) br.set_debug_redirects(True) br.set_debug_responses(True) else: logging.disable(logging.DEBUG) self.logger = logging.getLogger(None) br.addheaders = [( 'User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1' )] self.login_done = False self.data = {}
def makeMechBrowser(): """Create a mechanize browser This tries to paper over two different mechanize APIs, the newest is listed first. """ if hasattr(mechanize, 'DefaultFactory'): class MyFactory(mechanize.DefaultFactory): def __init__(self): mechanize.DefaultFactory.__init__(self) self._forms_factory = mechanize.FormsFactory( form_parser_class=TolerantFormParser) mech_browser = mechanize.Browser(factory=MyFactory()) else: mech_browser = mechanize.Browser(forms_factory=mechanize.FormsFactory( form_parser_class=TolerantFormParser)) return mech_browser
def __init__(self): mechanize.DefaultFactory.__init__(self) self._forms_factory = mechanize.FormsFactory( form_parser_class=TolerantFormParser)
def test_form_parser_fails_on_bad_html(self): self.assertRaises(mechanize.ParseError, self._make_forms_from_bad_html, mechanize.FormsFactory())
def test_form_parser_does_not_use_beautifulsoup(self): factory = mechanize.FormsFactory() self.assertIs(factory.form_parser_class, mechanize._form.FormParser)