Esempio n. 1
0
def test_format_date_in_string_customization(localeborg_base):
    assert LocaleBorg().format_date_in_string(
        "Foo {month:'miesiąca' MMMM} Bar", TESLA_BIRTHDAY,
        'pl') == 'Foo miesiąca lipca Bar'
    assert LocaleBorg().format_date_in_string("Foo {month_year:MMMM yyyy} Bar",
                                              TESLA_BIRTHDAY,
                                              'pl') == 'Foo lipca 1856 Bar'
Esempio n. 2
0
def test_format_date_locale_variants():
    LocaleBorg.reset()
    LocaleBorg.initialize({'en': 'en_US'}, 'en')
    assert LocaleBorg().formatted_date('long', TESLA_BIRTHDAY_DT, 'en') == DT_EN_US
    LocaleBorg.reset()
    LocaleBorg.initialize({'en': 'en_GB'}, 'en')
    assert LocaleBorg().formatted_date('long', TESLA_BIRTHDAY_DT, 'en') == '10 July 1856 at 12:34:56 UTC'
Esempio n. 3
0
def localeborg_base():
    """A base config of LocaleBorg."""
    LocaleBorg.reset()
    assert not LocaleBorg.initialized
    LocaleBorg.initialize({}, 'en')
    assert LocaleBorg.initialized
    assert LocaleBorg().current_lang == 'en'
    return None
Esempio n. 4
0
def localeborg_base():
    """A base config of LocaleBorg."""
    LocaleBorg.reset()
    assert not LocaleBorg.initialized
    LocaleBorg.initialize({}, 'en')
    assert LocaleBorg.initialized
    assert LocaleBorg().current_lang == 'en'
    return None
Esempio n. 5
0
def test_set_locale(localeborg_base):
    LocaleBorg().set_locale('pl')
    assert LocaleBorg.initialized
    assert LocaleBorg().current_lang == 'pl'
    LocaleBorg().set_locale('xx')  # fake language -- used to ensure any locale can be supported
    assert LocaleBorg.initialized
    assert LocaleBorg().current_lang == 'xx'
    assert LocaleBorg().set_locale('xz') == ''  # empty string for template ease of use
Esempio n. 6
0
def test_initialize():
    LocaleBorg.reset()
    assert not LocaleBorg.initialized
    LocaleBorg.initialize({}, 'en')
    assert LocaleBorg.initialized
    assert LocaleBorg().current_lang == 'en'
    LocaleBorg.reset()
    LocaleBorg.initialize({}, 'pl')
    assert LocaleBorg.initialized
    assert LocaleBorg().current_lang == 'pl'
Esempio n. 7
0
def localeborg_reset():
    """
    Reset the LocaleBorg before and after every test.
    """
    LocaleBorg.reset()
    assert not LocaleBorg.initialized
    try:
        yield
    finally:
        LocaleBorg.reset()
        assert not LocaleBorg.initialized
Esempio n. 8
0
def test_format_date_translatablesetting(localeborg_base):
    df = TranslatableSetting("DATE_FORMAT", {
        'en': "'en' MMMM",
        'pl': "MMMM 'pl'"
    }, {
        'en': '',
        'pl': ''
    })
    assert LocaleBorg().formatted_date(df, TESLA_BIRTHDAY_DT,
                                       'en') == 'en July'
    assert LocaleBorg().formatted_date(df, TESLA_BIRTHDAY_DT,
                                       'pl') == 'lipca pl'
Esempio n. 9
0
def test_format_date_timezone(localeborg_base):
    tesla_150_birthday_dtz = datetime.datetime(
        2006, 7, 10, 12, 34, 56, tzinfo=dateutil.tz.gettz('America/New_York'))
    assert LocaleBorg().formatted_date(
        'long', tesla_150_birthday_dtz) == 'July 10, 2006 at 12:34:56 PM -0400'
    nodst = datetime.datetime(2006,
                              1,
                              10,
                              12,
                              34,
                              56,
                              tzinfo=dateutil.tz.gettz('America/New_York'))
    assert LocaleBorg().formatted_date(
        'long', nodst) == 'January 10, 2006 at 12:34:56 PM -0500'
Esempio n. 10
0
def test_format_date_locale_variants():
    LocaleBorg.reset()
    LocaleBorg.initialize({'en': 'en_US'}, 'en')
    assert LocaleBorg().formatted_date('long', TESLA_BIRTHDAY_DT, 'en') == DT_EN_US
    LocaleBorg.reset()
    LocaleBorg.initialize({'en': 'en_GB'}, 'en')
    assert LocaleBorg().formatted_date('long', TESLA_BIRTHDAY_DT, 'en') == '10 July 1856 at 12:34:56 UTC'
Esempio n. 11
0
    def read_metadata(self, post, lang=None):
        """Read the metadata from a post, and return a metadata dict."""
        if lang is None:
            lang = LocaleBorg().current_lang
        source_path = post.translated_source_path(lang)

        with io.open(source_path, 'r', encoding='utf-8') as inf:
            data = inf.read()
            _, _, _, document = rst2html(data, logger=self.logger, source_path=source_path, transforms=self.site.rst_transforms, no_title_transform=False)
        meta = {}
        if 'title' in document:
            meta['title'] = document['title']
        for docinfo in document.traverse(docutils.nodes.docinfo):
            for element in docinfo.children:
                if element.tagname == 'field':  # custom fields (e.g. summary)
                    name_elem, body_elem = element.children
                    name = name_elem.astext()
                    value = body_elem.astext()
                elif element.tagname == 'authors':  # author list
                    name = element.tagname
                    value = [element.astext() for element in element.children]
                else:  # standard fields (e.g. address)
                    name = element.tagname
                    value = element.astext()
                name = name.lower()

                meta[name] = value

        # Put 'authors' meta field contents in 'author', too
        if 'authors' in meta and 'author' not in meta:
            meta['author'] = '; '.join(meta['authors'])

        # Map metadata from other platforms to names Nikola expects (Issue #2817)
        map_metadata(meta, 'rest_docinfo', self.site.config)
        return meta
Esempio n. 12
0
    def compile_string(self, data, source_path=None, is_two_file=True):
        """Compile reST into HTML strings."""
        # If errors occur, this will be added to the line number reported by
        # docutils so the line number matches the actual line number (off by
        # 7 with default metadata, could be more or less depending on the post).
        add_ln = 0
        if not is_two_file:
            m_data, data = self.split_metadata(data)
            add_ln = len(m_data.splitlines()) + 1

        default_template_path = os.path.join(os.path.dirname(__file__), 'template.txt')
        settings_overrides = {
            'initial_header_level': 1,
            'record_dependencies': True,
            'stylesheet_path': None,
            'link_stylesheet': True,
            'syntax_highlight': 'short',
            'math_output': 'mathjax',
            'template': default_template_path,
            'language_code': LEGAL_VALUES['DOCUTILS_LOCALES'].get(LocaleBorg().current_lang, 'en')
        }

        output, error_level, deps = rst2html(
            data, settings_overrides=settings_overrides, logger=self.logger, source_path=source_path, l_add_ln=add_ln, transforms=self.site.rst_transforms,
            no_title_transform=self.site.config.get('NO_DOCUTILS_TITLE_TRANSFORM', False))
        if not isinstance(output, unicode_str):
            # To prevent some weird bugs here or there.
            # Original issue: empty files.  `output` became a bytestring.
            output = output.decode('utf-8')
        return output, error_level, deps
Esempio n. 13
0
 def compile(self, source, dest, is_two_file=True, post=None, lang=None):
     if lang is None:
         lang = LocaleBorg().current_lang
     makedirs(os.path.dirname(dest))
     with io.open(dest, "w+", encoding="utf8") as out_file:
         # Read post
         with io.open(source, "r", encoding="utf8") as in_file:
             data = in_file.read()
         if not is_two_file:
             data = re.split('(\n\n|\r\n\r\n)', data, maxsplit=1)[-1]
         # Read additional data
         additional_data, dependent_files = self.load_additional_data(
             source)
         # Process post
         context = Context(hash(data),
                           name=source,
                           additional_data=additional_data)
         for filename in dependent_files:
             context.add_file_dependency(filename, 'fragment')
         output = self.__formatData(data, context)
         # Write result
         out_file.write(output)
         if post is None:
             deps_path = dest + '.wpdep'
         else:
             deps_path = self._get_dep_filename(post, lang)
         self._write_deps(context, deps_path)
Esempio n. 14
0
    def read_metadata(self, post, file_metadata_regexp=None, unslugify_titles=False, lang=None):
        """Read the metadata from a post's meta tags, and return a metadata dict."""
        if lang is None:
            lang = LocaleBorg().current_lang
        source_path = post.translated_source_path(lang)

        with io.open(source_path, 'r', encoding='utf-8-sig') as inf:
            data = inf.read()

        metadata = {}
        try:
            doc = lxml.html.document_fromstring(data)
        except lxml.etree.ParserError as e:
            # Issue #374 -> #2851
            if str(e) == "Document is empty":
                return {}
            # let other errors raise
            raise
        title_tag = doc.find('*//title')
        if title_tag is not None and title_tag.text:
            metadata['title'] = title_tag.text
        meta_tags = doc.findall('*//meta')
        for tag in meta_tags:
            k = tag.get('name', '').lower()
            if not k:
                continue
            elif k == 'keywords':
                k = 'tags'
            content = tag.get('content')
            if content:
                metadata[k] = content
        map_metadata(metadata, 'html_metadata', self.site.config)
        return metadata
Esempio n. 15
0
def test_format_date_timezone(base_config):
    tesla_150_birthday_dtz = datetime.datetime(
        2006, 7, 10, 12, 34, 56, tzinfo=dateutil.tz.gettz("America/New_York"))
    formatted_date = LocaleBorg().formatted_date("long",
                                                 tesla_150_birthday_dtz)
    assert formatted_date == "July 10, 2006 at 12:34:56 PM -0400"

    nodst = datetime.datetime(2006,
                              1,
                              10,
                              12,
                              34,
                              56,
                              tzinfo=dateutil.tz.gettz("America/New_York"))
    formatted_date = LocaleBorg().formatted_date("long", nodst)
    assert formatted_date == "January 10, 2006 at 12:34:56 PM -0500"
Esempio n. 16
0
def test_initialize():
    LocaleBorg.reset()
    assert not LocaleBorg.initialized
    LocaleBorg.initialize({}, 'en')
    assert LocaleBorg.initialized
    assert LocaleBorg().current_lang == 'en'
    LocaleBorg.reset()
    LocaleBorg.initialize({}, 'pl')
    assert LocaleBorg.initialized
    assert LocaleBorg().current_lang == 'pl'
Esempio n. 17
0
    def handler(self,
                site=None,
                data=None,
                lang=None,
                file=None,
                template=None,
                post=None,
                recurring_month=False):
        if not template:
            template = 'calendar.tmpl'
        deps = self.site.template_system.template_deps(template)

        if file is not None:
            with open(file, 'rb') as inf:
                data = inf.read()
            deps.append(file)
        cal = ical.Calendar.from_ical(data)

        events = []
        for element in cal.walk():
            eventdict = {}
            if element.name == "VEVENT":
                if element.get('summary') is not None:
                    eventdict['summary'] = element.get('summary')
                if element.get('description') is not None:
                    eventdict['description'] = element.get('description')
                if element.get('url') is not None:
                    eventdict['url'] = element.get('url')
                if element.get('dtstart') is not None:
                    eventdict['dtstart'] = element.get('dtstart').dt
                if element.get('dtend') is not None:
                    eventdict['dtend'] = element.get('dtend').dt
                    event_length = element.get('dtend').dt - element.get(
                        'dtstart').dt
                if element.get('duration') is not None:
                    event_length = element.decoded('duration')
                    eventdict['dtend'] = element.get(
                        'dtstart').dt + event_length
                if element.get('location') is not None:
                    eventdict['location'] = element.get('location')
                events.append(eventdict)

                if 'RRULE' in element and recurring_month:
                    for date in self._calculate_recurring(
                            element, recurring_month):
                        subevent = dict(eventdict)
                        subevent['dtstart'] = date
                        subevent['dtend'] = date + event_length
                        events.append(subevent)

        output = self.site.render_template(template, None, {
            'events': events,
            'lang': LocaleBorg().current_lang,
        })

        return output, deps
Esempio n. 18
0
def test_format_date_translatablesetting(base_config, lang, expected_string):
    df = TranslatableSetting("DATE_FORMAT", {
        "en": "'en' MMMM",
        "pl": "MMMM 'pl'"
    }, {
        "en": "",
        "pl": ""
    })
    assert LocaleBorg().formatted_date(df, TESLA_BIRTHDAY_DT,
                                       lang) == expected_string
Esempio n. 19
0
def test_format_date_long(localeborg_base):
    assert LocaleBorg().formatted_date('long', TESLA_BIRTHDAY_DT) == DT_EN_US
    assert LocaleBorg().formatted_date('long', TESLA_BIRTHDAY_DT, 'en') == DT_EN_US
    assert LocaleBorg().formatted_date('long', TESLA_BIRTHDAY_DT, 'pl') == DT_PL
    LocaleBorg().set_locale('pl')
    assert LocaleBorg().formatted_date('long', TESLA_BIRTHDAY_DT) == DT_PL
    assert LocaleBorg().formatted_date('long', TESLA_BIRTHDAY_DT, 'en') == DT_EN_US
Esempio n. 20
0
def test_locale_base():
    LocaleBorg.reset()
    LocaleBorg.initialize(LEGAL_VALUES['LOCALES_BASE'], 'en')
    assert LocaleBorg().formatted_date('long', TESLA_BIRTHDAY_DT,
                                       'sr') == '10. јул 1856. 12:34:56 UTC'
    assert LocaleBorg().formatted_date(
        'long', TESLA_BIRTHDAY_DT, 'sr_latin') == '10. jul 1856. 12:34:56 UTC'
Esempio n. 21
0
    def render(self, target_language=None, **context):
        # We bypass BaseTemplate.render because it wants to setup
        # a bunch of translation stuff that's only applicable to
        # zope.i18n, and it overrides the translate function we pass
        # in which came from Nikola.
        assert 'request' in context
        assert 'translate' in context
        if target_language is None:
            target_language = LocaleBorg().current_lang

        context['target_language'] = target_language
        # pylint:disable=bad-super-call
        return super(BaseTemplate, self).render(**context)
Esempio n. 22
0
def test_format_date_in_string_month_day_year_gb():
    LocaleBorg.reset()
    LocaleBorg.initialize({'en': 'en_GB'}, 'en')
    assert LocaleBorg().format_date_in_string(
        "Foo {month_day_year} Bar", TESLA_BIRTHDAY) == 'Foo 10 July 1856 Bar'
    assert LocaleBorg().format_date_in_string("Foo {month_day_year} Bar",
                                              TESLA_BIRTHDAY,
                                              'pl') == 'Foo 10 lipca 1856 Bar'
Esempio n. 23
0
def localeborg_base():
    """A base config of LocaleBorg."""
    LocaleBorg.reset()
    assert not LocaleBorg.initialized
    LocaleBorg.initialize({}, "en")
    assert LocaleBorg.initialized
    assert LocaleBorg().current_lang == "en"
    try:
        yield
    finally:
        LocaleBorg.reset()
        assert not LocaleBorg.initialized
Esempio n. 24
0
    def read_metadata(self, post, lang=None):
        """Read metadata directly from ipynb file.

        As ipynb files support arbitrary metadata as json, the metadata used by Nikola
        will be assume to be in the 'nikola' subfield.
        """
        self._req_missing_ipynb()
        if lang is None:
            lang = LocaleBorg().current_lang
        source = post.translated_source_path(lang)
        with io.open(source, "r", encoding="utf8") as in_file:
            nb_json = nbformat.read(in_file, current_nbformat)
        # Metadata might not exist in two-file posts or in hand-crafted
        # .ipynb files.
        return nb_json.get('metadata', {}).get('nikola', {})
Esempio n. 25
0
        def generate_calendar_template(timezone_name, filename, days_in_past, days_in_future, output_filename):
            template = 'calendar_preformat.tmpl'
            deps = self.site.template_system.template_deps(template)
            deps.append(filename)

            events = collect_events(filename, days_in_past, days_in_future)
            output = self.site.render_template(
                template,
                None,
                {
                    'events': sorted(events, key=lambda k: k['dtstart']),
                    'lang': LocaleBorg().current_lang,
                })
            with open("plugins/calendar_preformat/templates/jinja/%s" % output_filename, "w") as outputfile:
                outputfile.write(output)
Esempio n. 26
0
def localeborg_setup(default_locale):
    """
    Reset the LocaleBorg before and after every test.
    """
    LocaleBorg.reset()
    LocaleBorg.initialize({}, default_locale)
    try:
        yield
    finally:
        LocaleBorg.reset()
Esempio n. 27
0
def localeborg(default_locale):
    """
    LocaleBorg with default settings
    """
    LocaleBorg.reset()
    LocaleBorg.initialize({}, default_locale)
    try:
        yield
    finally:
        LocaleBorg.reset()
Esempio n. 28
0
def test_format_date_long(base_config):
    assert LocaleBorg().formatted_date("long", TESLA_BIRTHDAY_DT) == DT_EN_US
    assert LocaleBorg().formatted_date("long", TESLA_BIRTHDAY_DT,
                                       "en") == DT_EN_US
    assert LocaleBorg().formatted_date("long", TESLA_BIRTHDAY_DT,
                                       "pl") == DT_PL
    LocaleBorg().set_locale("pl")
    assert LocaleBorg().formatted_date("long", TESLA_BIRTHDAY_DT) == DT_PL
    assert LocaleBorg().formatted_date("long", TESLA_BIRTHDAY_DT,
                                       "en") == DT_EN_US
Esempio n. 29
0
def add_header_permalinks(fname, xpath_list=None, file_blacklist=None):
    """Post-process HTML via lxml to add header permalinks Sphinx-style."""
    # Blacklist requires custom file handling
    file_blacklist = file_blacklist or []
    if fname in file_blacklist:
        return
    with io.open(fname, 'r', encoding='utf-8') as inf:
        data = inf.read()
    doc = lxml.html.document_fromstring(data)
    # Get language for slugify
    try:
        lang = doc.attrib['lang']  # <html lang="…">
    except KeyError:
        # Circular import workaround (utils imports filters)
        from nikola.utils import LocaleBorg
        lang = LocaleBorg().current_lang

    xpath_set = set()
    if not xpath_list:
        xpath_list = ['*//div[@class="e-content entry-content"]//{hx}']
    for xpath_expr in xpath_list:
        for hx in ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']:
            xpath_set.add(xpath_expr.format(hx=hx))
    for x in xpath_set:
        nodes = doc.findall(x)
        for node in nodes:
            parent = node.getparent()
            if 'id' in node.attrib:
                hid = node.attrib['id']
            elif 'id' in parent.attrib:
                # docutils: <div> has an ID and contains the header
                hid = parent.attrib['id']
            else:
                # Using force-mode, because not every character can appear in a
                # HTML id
                node.attrib['id'] = slugify(node.text_content(), lang, True)
                hid = node.attrib['id']

            new_node = lxml.html.fragment_fromstring(
                '<a href="#{0}" class="headerlink" title="Permalink to this heading">¶</a>'
                .format(hid))
            node.append(new_node)

    with io.open(fname, 'w', encoding='utf-8') as outf:
        outf.write('<!DOCTYPE html>\n' +
                   lxml.html.tostring(doc, encoding="unicode"))
Esempio n. 30
0
    def read_metadata(self, post, lang=None):
        """Read the metadata from a post, and return a metadata dict."""
        if lang is None:
            lang = LocaleBorg().current_lang
        source_path = post.translated_source_path(lang)

        # Silence reST errors, some of which are due to a different
        # environment. Real issues will be reported while compiling.
        null_logger = logbook.Logger('NULL')
        null_logger.handlers = [logbook.NullHandler()]
        with io.open(source_path, 'r', encoding='utf-8') as inf:
            data = inf.read()
            _, _, _, document = rst2html(data,
                                         logger=null_logger,
                                         source_path=source_path,
                                         transforms=self.site.rst_transforms)
        meta = {}
        if 'title' in document:
            meta['title'] = document['title']
        for docinfo in document.traverse(docutils.nodes.docinfo):
            for element in docinfo.children:
                if element.tagname == 'field':  # custom fields (e.g. summary)
                    name_elem, body_elem = element.children
                    name = name_elem.astext()
                    value = body_elem.astext()
                elif element.tagname == 'authors':  # author list
                    name = element.tagname
                    value = [element.astext() for element in element.children]
                else:  # standard fields (e.g. address)
                    name = element.tagname
                    value = element.astext()
                name = name.lower()

                meta[name] = value

        # Put 'authors' meta field contents in 'author', too
        if 'authors' in meta and 'author' not in meta:
            meta['author'] = '; '.join(meta['authors'])

        # Map metadata from other platforms to names Nikola expects (Issue #2817)
        map_metadata(meta, 'rest_docinfo', self.site.config)
        return meta
Esempio n. 31
0
 def run(self):
     gallery_name = self.arguments[0]
     kw = {
         'output_folder': self.site.config['OUTPUT_FOLDER'],
         'thumbnail_size': self.site.config['THUMBNAIL_SIZE'],
     }
     gallery_index_file = os.path.join(
         kw['output_folder'], self.site.path('gallery', gallery_name))
     gallery_index_path = self.site.path('gallery', gallery_name)
     gallery_folder = os.path.dirname(gallery_index_path)
     self.state.document.settings.record_dependencies.add(
         gallery_index_file)
     with open(gallery_index_file, 'r') as inf:
         data = inf.read()
     dom = lxml.html.fromstring(data)
     text = [
         e.text for e in dom.xpath('//script')
         if e.text and 'jsonContent = ' in e.text
     ][0]
     photo_array = json.loads(text.split(' = ', 1)[1].split(';', 1)[0])
     for img in photo_array:
         img['url'] = '/' + '/'.join([gallery_folder, img['url']])
         img['url_thumb'] = '/' + '/'.join(
             [gallery_folder, img['url_thumb']])
     photo_array_json = json.dumps(photo_array)
     context = {}
     context['description'] = ''
     context['title'] = ''
     context['lang'] = LocaleBorg().current_lang
     context['crumbs'] = []
     context['folders'] = []
     context['photo_array'] = photo_array
     context['photo_array_json'] = photo_array_json
     context['permalink'] = '#'
     context.update(self.site.GLOBAL_CONTEXT)
     context.update(kw)
     output = self.site.template_system.render_template(
         'gallery.tmpl', None, context)
     # This magical comment makes everything work. Try removing it!
     output = '\n<!-- foo -->\n%s\n\n\n' % output
     return [nodes.raw('', output, format='html')]
Esempio n. 32
0
 def read_metadata(self, post, file_metadata_regexp=None, unslugify_titles=False, lang=None):
     """Read the metadata from a post, and return a metadata dict."""
     if not self.support_metadata:
         return {}
     if Markdown is None:
         req_missing(['markdown'], 'build this site (compile Markdown)')
     if lang is None:
         lang = LocaleBorg().current_lang
     source = post.translated_source_path(lang)
     with io.open(source, 'r', encoding='utf-8') as inf:
         # Note: markdown meta returns lowercase keys
         data = inf.read()
         # If the metadata starts with "---" it's actually YAML and
         # we should not let markdown parse it, because it will do
         # bad things like setting empty tags to "''"
         if data.startswith('---\n'):
             return {}
         _, meta = self.converter.convert(data)
     # Map metadata from other platforms to names Nikola expects (Issue #2817)
     map_metadata(meta, 'markdown_metadata', self.site.config)
     return meta
Esempio n. 33
0
 def compile_string(self,
                    data,
                    source_path=None,
                    is_two_file=True,
                    post=None,
                    lang=None):
     """Compile Markdown into HTML strings."""
     if lang is None:
         lang = LocaleBorg().current_lang
     if Markdown is None:
         req_missing(['markdown'], 'build this site (compile Markdown)')
     if not is_two_file:
         _, data = self.split_metadata(data, post, lang)
     new_data, shortcodes = sc.extract_shortcodes(data)
     output, _ = self.converters[lang].convert(new_data)
     output, shortcode_deps = self.site.apply_shortcodes_uuid(
         output,
         shortcodes,
         filename=source_path,
         extra_context={'post': post})
     return output, shortcode_deps
Esempio n. 34
0
def test_locale_base():
    LocaleBorg.reset()
    LocaleBorg.initialize(LEGAL_VALUES['LOCALES_BASE'], 'en')
    assert LocaleBorg().formatted_date('long', TESLA_BIRTHDAY_DT, 'sr') == '10. јул 1856. 12:34:56 UTC'
    assert LocaleBorg().formatted_date('long', TESLA_BIRTHDAY_DT, 'sr_latin') == '10. jul 1856. 12:34:56 UTC'
Esempio n. 35
0
def test_initilalize_failure():
    LocaleBorg.reset()
    with pytest.raises(ValueError):
        LocaleBorg.initialize({}, None)
        LocaleBorg.initialize({}, '')
    assert not LocaleBorg.initialized
Esempio n. 36
0
def test_uninitialized_error():
    LocaleBorg.reset()
    with pytest.raises(LocaleBorgUninitializedException):
        LocaleBorg()
Esempio n. 37
0
def test_format_date_in_string_month_day_year_gb():
    LocaleBorg.reset()
    LocaleBorg.initialize({'en': 'en_GB'}, 'en')
    assert LocaleBorg().format_date_in_string("Foo {month_day_year} Bar", TESLA_BIRTHDAY) == 'Foo 10 July 1856 Bar'
    assert LocaleBorg().format_date_in_string("Foo {month_day_year} Bar", TESLA_BIRTHDAY,
                                              'pl') == 'Foo 10 lipca 1856 Bar'