#! /usr/bin/env python3

import pytest

from ws.parser_helpers.title import Context

interwikimap = {
    'cs': {'language': 'čeština',
           'local': '',
           'prefix': 'cs',
           'url': 'https://wiki.archlinux.org/index.php/$1_(%C4%8Cesky)'},
    'de': {'language': 'Deutsch',
           'local': '',
           'prefix': 'de',
           'url': 'https://wiki.archlinux.de/title/$1'},
    'en': {'language': 'English',
           'local': '',
           'prefix': 'en',
           'url': 'https://wiki.archlinux.org/index.php/$1'},
    'meta': {'api': 'https://meta.wikimedia.org/w/api.php',
             'prefix': 'meta',
             'url': 'https://meta.wikimedia.org/wiki/$1'},
    'wikipedia': {'api': 'https://en.wikipedia.org/w/api.php',
                  'prefix': 'wikipedia',
                  'url': 'https://en.wikipedia.org/wiki/$1'},
}
namespacenames = {
    '': 0,
    'ArchWiki': 4,
    'ArchWiki talk': 5,
    'Category': 14,
    'Category talk': 15,
    'File': 6,
    'File talk': 7,
    'Help': 12,
    'Help talk': 13,
    'Image': 6,
    'Image talk': 7,
    'Media': -2,
    'MediaWiki': 8,
    'MediaWiki talk': 9,
    'Project': 4,
    'Project talk': 5,
    'Special': -1,
    'Talk': 1,
    'Template': 10,
    'Template talk': 11,
    'User': 2,
    'User talk': 3,
}
namespaces = {
    -2: {'*': 'Media', 'canonical': 'Media', 'case': 'first-letter', 'id': -2},
    -1: {'*': 'Special', 'canonical': 'Special', 'case': 'first-letter', 'id': -1},
    0: {'*': '',
        'case': 'first-letter',
        'content': '',
        'id': 0,
        'subpages': ''},
    1: {'*': 'Talk',
        'canonical': 'Talk',
        'case': 'first-letter',
        'id': 1,
        'subpages': ''},
    2: {'*': 'User',
        'canonical': 'User',
        'case': 'first-letter',
        'id': 2,
        'subpages': ''},
    3: {'*': 'User talk',
        'canonical': 'User talk',
        'case': 'first-letter',
        'id': 3,
        'subpages': ''},
    4: {'*': 'ArchWiki',
        'canonical': 'Project',
        'case': 'first-letter',
        'id': 4,
        'subpages': ''},
    5: {'*': 'ArchWiki talk',
        'canonical': 'Project talk',
        'case': 'first-letter',
        'id': 5,
        'subpages': ''},
    6: {'*': 'File', 'canonical': 'File', 'case': 'first-letter', 'id': 6},
    7: {'*': 'File talk',
        'canonical': 'File talk',
        'case': 'first-letter',
        'id': 7,
        'subpages': ''},
    8: {'*': 'MediaWiki',
        'canonical': 'MediaWiki',
        'case': 'first-letter',
        'id': 8,
        'subpages': ''},
    9: {'*': 'MediaWiki talk',
        'canonical': 'MediaWiki talk',
        'case': 'first-letter',
        'id': 9,
        'subpages': ''},
    10: {'*': 'Template',
         'canonical': 'Template',
         'case': 'first-letter',
         'id': 10,
         'subpages': ''},
    11: {'*': 'Template talk',
         'canonical': 'Template talk',
         'case': 'first-letter',
         'id': 11,
         'subpages': ''},
    12: {'*': 'Help',
         'canonical': 'Help',
         'case': 'first-letter',
         'id': 12,
         'subpages': ''},
    13: {'*': 'Help talk',
         'canonical': 'Help talk',
         'case': 'first-letter',
         'id': 13,
         'subpages': ''},
    14: {'*': 'Category',
         'canonical': 'Category',
         'case': 'first-letter',
         'id': 14},
    15: {'*': 'Category talk',
         'canonical': 'Category talk',
         'case': 'first-letter',
         'id': 15,
         'subpages': ''}
}
legaltitlechars = " %!\"$&'()*,\\-.\\/0-9:;=?@A-Z\\\\^_`a-z~\\x80-\\xFF+"

@pytest.fixture(scope="function")
def title_context():
    return Context(interwikimap, namespacenames, namespaces, legaltitlechars)
