Esempio n. 1
0
  def test_set_locale(self):
    en = Locale('en')
    fr = Locale('fr')
    with self.app.test_request_context('/'):
      assert get_locale() == en

      with i18n.set_locale('fr') as new_locale:
        assert get_locale() == fr
        assert isinstance(new_locale, Locale)
        assert new_locale == fr
      assert get_locale() == en

      with i18n.set_locale(fr):
        assert get_locale() == fr
        with i18n.set_locale(en):
          assert get_locale() == en
        assert get_locale() == fr
      assert get_locale() == en

    # no request context: no locale set
    app_ctx = _app_ctx_stack.top
    self._ctx.pop()
    self._ctx = None
    app_ctx.push()
    with i18n.set_locale(fr):
      assert get_locale() is None
Esempio n. 2
0
    def test_set_locale(self):
        en = Locale('en')
        fr = Locale('fr')
        with self.app.test_request_context('/'):
            assert get_locale() == en

            with i18n.set_locale('fr') as new_locale:
                assert get_locale() == fr
                assert isinstance(new_locale, Locale)
                assert new_locale == fr
            assert get_locale() == en

            with i18n.set_locale(fr):
                assert get_locale() == fr
                with i18n.set_locale(en):
                    assert get_locale() == en
                assert get_locale() == fr
            assert get_locale() == en

        # no request context: no locale set
        app_ctx = _app_ctx_stack.top
        self._ctx.pop()
        self._ctx = None
        app_ctx.push()
        with i18n.set_locale(fr):
            assert get_locale() is None
Esempio n. 3
0
  def test_ensure_request_context(self):
    en = Locale('en')
    fr = Locale('fr')

    # by default, a request context is present is test case setup.  first let's
    # show no new request context is set up and that set_locale works as
    # advertised
    app_ctx = _app_ctx_stack.top
    current_ctx = _request_ctx_stack.top
    assert current_ctx is not None
    assert get_locale() == en

    with i18n.ensure_request_context():
      assert current_ctx == _request_ctx_stack.top

      with i18n.set_locale(fr):
        assert get_locale() == fr

    self._ctx.pop()
    self._ctx = None
    assert _app_ctx_stack.top is None
    assert _request_ctx_stack.top is None
    assert get_locale() is None

    app_ctx.push()
    # ensure set_locale() doesn't set up a request context
    with i18n.set_locale(fr):
      assert _request_ctx_stack.top is None
      assert get_locale() is None

    with i18n.ensure_request_context():
      assert _request_ctx_stack.top is not None
      assert current_ctx != _request_ctx_stack.top
      assert get_locale() == en

      with i18n.set_locale(fr):
        assert get_locale() == fr

    assert _request_ctx_stack.top is None
    assert get_locale() is None

    # test chaining
    with i18n.ensure_request_context(), i18n.set_locale(fr):
      assert get_locale() == fr
Esempio n. 4
0
    def test_ensure_request_context(self):
        en = Locale('en')
        fr = Locale('fr')

        # by default, a request context is present is test case setup.  first let's
        # show no new request context is set up and that set_locale works as
        # advertised
        app_ctx = _app_ctx_stack.top
        current_ctx = _request_ctx_stack.top
        assert current_ctx is not None
        assert get_locale() == en

        with i18n.ensure_request_context():
            assert current_ctx == _request_ctx_stack.top

            with i18n.set_locale(fr):
                assert get_locale() == fr

        self._ctx.pop()
        self._ctx = None
        assert _app_ctx_stack.top is None
        assert _request_ctx_stack.top is None
        assert get_locale() is None

        app_ctx.push()
        # ensure set_locale() doesn't set up a request context
        with i18n.set_locale(fr):
            assert _request_ctx_stack.top is None
            assert get_locale() is None

        with i18n.ensure_request_context():
            assert _request_ctx_stack.top is not None
            assert current_ctx != _request_ctx_stack.top
            assert get_locale() == en

            with i18n.set_locale(fr):
                assert get_locale() == fr

        assert _request_ctx_stack.top is None
        assert get_locale() is None

        # test chaining
        with i18n.ensure_request_context(), i18n.set_locale(fr):
            assert get_locale() == fr
Esempio n. 5
0
  def test_get_template_i18n(self):
    template_path = '/myfile.txt'
    en = Locale('en')
    result = i18n.get_template_i18n(template_path, locale=en)
    self.assertIn('/myfile.en.txt', result)
    self.assertIn('/myfile.txt', result)

    en = Locale('en_US')
    result = i18n.get_template_i18n(template_path, locale=en)
    self.assertIn('/myfile.en_US.txt', result)
    self.assertIn('/myfile.txt', result)

    with i18n.set_locale('fr'):
        result = i18n.get_template_i18n(template_path, get_locale())
        self.assertIn('/myfile.fr.txt', result)
        self.assertIn('/myfile.txt', result)
Esempio n. 6
0
    def test_get_template_i18n(self):
        template_path = '/myfile.txt'
        en = Locale('en')
        result = i18n.get_template_i18n(template_path, locale=en)
        self.assertIn('/myfile.en.txt', result)
        self.assertIn('/myfile.txt', result)

        en = Locale('en_US')
        result = i18n.get_template_i18n(template_path, locale=en)
        self.assertIn('/myfile.en_US.txt', result)
        self.assertIn('/myfile.txt', result)

        with i18n.set_locale('fr'):
            result = i18n.get_template_i18n(template_path, get_locale())
            self.assertIn('/myfile.fr.txt', result)
            self.assertIn('/myfile.txt', result)