def execute(cls, options): options = cls.handle_options(options) try: if options.extract: MySQLExtractor(options).extract() if options.load: MediawikiLoader(options).load() finally: if not options.keep_dumps: shutil.rmtree(options.dump_dir)
def setUp(self): setup_basic_test() self.options = mock.Mock() # need test project with installed wiki app self.options.nbhd = 'Adobe' self.options.project = '--init--' nbhd = M.Neighborhood.query.get(name=self.options.nbhd) h.set_context(self.options.project, 'wiki', neighborhood=nbhd) # monkey-patch MediawikiLoader for test def pages(self): yield 1 yield 2 def history(self, page_dir): data = { 1: [ { 'title': 'Test title', 'text': "'''bold''' ''italics''", 'page_id': 1, 'timestamp': '20120808000001', 'username': '******' }, { 'title': 'Test title', 'text': "'''bold'''", 'page_id': 1, 'timestamp': '20120809000001', 'username': '******' }, ], 2: [ { 'title': 'Main', 'text': "Main text rev 1", 'page_id': 2, 'timestamp': '20120808000001', 'username': '******' }, { 'title': 'Main', 'text': "Main text rev 2", 'page_id': 2, 'timestamp': '20120809000001', 'username': '******' }, ], } for page in data[page_dir]: yield page def talk(self, page_dir): data = { 1: { 'text': "''Talk page'' for page 1.", 'username': '******', 'timestamp': '20120809000001' }, 2: { 'text': "''Talk page'' for page 2.", 'username': '******', 'timestamp': '20120809000001' }, } return data[page_dir] def attachments(self, *args, **kwargs): # make 'empty' iterator if False: yield MediawikiLoader._pages = pages MediawikiLoader._history = history MediawikiLoader._talk = talk MediawikiLoader._attachments = attachments self.loader = MediawikiLoader(self.options)