def test_name(self): """test getter/setter for the name attribute""" name = wraptext("foobar") node1 = Template(name) node2 = Template(name, [pgenh("1", "bar")]) self.assertIs(name, node1.name) self.assertIs(name, node2.name) node1.name = "asdf" node2.name = "téstïng" self.assertWikicodeEqual(wraptext("asdf"), node1.name) self.assertWikicodeEqual(wraptext("téstïng"), node2.name)
def handle(site, index): src_ns = next(site.results(prop='info', titles=index))['ns'] for page in site.results(generator='allpages', gapprefix=index.split(':')[1] + '/Beispiel ', gaplimit='max', prop='revisions', rvprop='content', gapnamespace=src_ns): orig = page['revisions'][0]['*'] if mwbot.parse_redirect(orig): continue code = mwbot.parse(orig) templates = code.filter_templates( matches=lambda x: x.name.matches('Beispiel')) if len(templates) > 0: template = templates[0] else: template = Template(Wikicode([Text('Beispiel')])) code.insert(0, template) code.insert(1, '\n') # legacy format handling template.name = 'Beispiel' if template.has('1') and not template.get('1').value.startswith('\n'): template.get('1').value.insert(0, '\n') if template.has('status'): if str(template.get('status').value).strip() not in ('extern', 'Datei'): print('unknown status: {}'.format(k)) if template.has('1'): if str(template.get('1').value).strip() == 'teils': template.add('teils', '') template.remove('1') elif str(template.get('1').value).strip() == 'falsch': template.add('falsch', '') template.remove('1') if not template.has('1'): angabe_div = code.filter_tags( matches=lambda x: x.tag.matches('blockquote') or len([ x for x in x.attributes if '{{Angabe}}' in x or '#EFEFEF' in x ])) if angabe_div: template.add('1', '\n' + str(angabe_div[0].contents).strip() + '\n', showkey=True) code.remove(angabe_div[0]) else: angabe_sec = code.get_sections(matches='Angabe|Aufgabe') if angabe_sec: code.remove(angabe_sec[0].nodes[0]) template.add('1', '\n' + str(angabe_sec[0]).strip() + '\n', showkey=True) code.replace(angabe_sec[0], '\n') mwbot.save(site, page['title'], orig, str(code), 'beispiel_fixer.py', strip_consec_nl=True)