"""Regression checks for one event/dining panel and Province editor links."""
from html.parser import HTMLParser
from pathlib import Path

root = Path(__file__).resolve().parents[1]
unit = (root / 'public_html/admin/index.html').read_text()
province = (root / 'public_html/province/events.html').read_text()

class Panels(HTMLParser):
    def __init__(self):
        super().__init__()
        self.sections = []
        self.parents = {}
        self.nav_buttons = []
    def handle_starttag(self, tag, attrs):
        attrs = dict(attrs)
        if tag == 'section':
            name = attrs.get('id')
            self.parents[name] = tuple(self.sections)
            self.sections.append(name)
        if tag == 'button' and 'data-panel' in attrs:
            self.nav_buttons.append(attrs['data-panel'])
    def handle_endtag(self, tag):
        if tag == 'section':
            self.sections.pop()

page = Panels()
page.feed(unit)
assert page.parents['menuSettings'] == ('meetingSettings',)
assert page.nav_buttons.count('meetingSettings') == 1
assert 'menuSettings' not in page.nav_buttons
assert "addMeetingButtonPicker('meetingSettings'" in unit
assert "(can('meeting.edit')||can('menu.edit'))" in unit
assert "$('meetingSettingsForm')?.classList.toggle('hidden',!can('meeting.edit'))" in unit
assert "$('menuSettings')?.classList.toggle('hidden',!can('menu.edit'))" in unit
assert 'provinceEventHost' in unit
assert "meetingId:event.id,panel:'meetingSettings'" in province
assert "meetingId:event.id,panel:'bookings'" in province
print('Combined editor and Province event links verified.')
