Beispiel #1
0
    def test_valid_contexto(self):

        # RFC 5892 Rule A.3 (Middle Dot)
        self.assertTrue(idna.valid_contexto(u'\u006c\u00b7\u006c', 1))
        self.assertFalse(idna.valid_contexto(u'\u006c\u00b7', 1))
        self.assertFalse(idna.valid_contexto(u'\u00b7\u006c', 0))
        self.assertFalse(idna.valid_contexto(u'\u00b7', 0))
        self.assertFalse(idna.valid_contexto(u'\u006c\u00b7\u0061', 1))

        # RFC 5892 Rule A.4 (Greek Lower Numeral Sign)
        # TODO: Needs tests

        # RFC 5892 Rule A.5 (Hebrew Punctuation Geresh)
        # TODO: Needs tests

        # RFC 5892 Rule A.6 (Hebrew Punctuation Gershayim)
        # TODO: Needs tests

        # RFC 5892 Rule A.7 (Katakana Middle Dot)
        # TODO: Needs tests

        # RFC 5892 Rule A.8 (Arabic-Indic Digits)
        # TODO: Needs tests

        # RFC 5892 Rule A.9 (Extended Arabic-Indic Digits)
        # TODO: Needs tests

        pass
Beispiel #2
0
    def test_valid_contexto(self):

        latin = u'\u0061'
        latin_l = u'\u006c'
        greek = u'\u03b1'
        hebrew = u'\u05d0'
        katakana = u'\u30a1'
        hiragana = u'\u3041'
        han = u'\u6f22'
        arabic_digit = u'\u0660'
        ext_arabic_digit = u'\u06f0'

        # RFC 5892 Rule A.3 (Middle Dot)
        latin_middle_dot = u'\u00b7'
        self.assertTrue(idna.valid_contexto(latin_l + latin_middle_dot + latin_l, 1))
        self.assertFalse(idna.valid_contexto(latin_middle_dot + latin_l, 1))
        self.assertFalse(idna.valid_contexto(latin_l + latin_middle_dot, 0))
        self.assertFalse(idna.valid_contexto(latin_middle_dot, 0))
        self.assertFalse(idna.valid_contexto(latin_l + latin_middle_dot + latin, 1))

        # RFC 5892 Rule A.4 (Greek Lower Numeral Sign)
        glns = u'\u0375'
        self.assertTrue(idna.valid_contexto(glns + greek, 0))
        self.assertFalse(idna.valid_contexto(glns + latin, 0))
        self.assertFalse(idna.valid_contexto(glns, 0))
        self.assertFalse(idna.valid_contexto(greek + glns, 1))

        # RFC 5892 Rule A.5 (Hebrew Punctuation Geresh)
        geresh = u'\u05f3'
        self.assertTrue(idna.valid_contexto(hebrew + geresh, 1))
        self.assertFalse(idna.valid_contexto(latin + geresh, 1))

        # RFC 5892 Rule A.6 (Hebrew Punctuation Gershayim)
        gershayim = u'\u05f4'
        self.assertTrue(idna.valid_contexto(hebrew + gershayim, 1))
        self.assertFalse(idna.valid_contexto(latin + gershayim, 1))

        # RFC 5892 Rule A.7 (Katakana Middle Dot)
        ja_middle_dot = u'\u30fb'
        self.assertTrue(idna.valid_contexto(katakana + ja_middle_dot + katakana, 1))
        self.assertTrue(idna.valid_contexto(hiragana + ja_middle_dot + hiragana, 1))
        self.assertTrue(idna.valid_contexto(han + ja_middle_dot + han, 1))
        self.assertTrue(idna.valid_contexto(u'\u6f22\u30fb\u5b57', 1))
        self.assertFalse(idna.valid_contexto(u'\u0061\u30fb\u0061', 1))

        # RFC 5892 Rule A.8 (Arabic-Indic Digits)
        self.assertTrue(idna.valid_contexto(arabic_digit + arabic_digit, 0))
        self.assertFalse(idna.valid_contexto(arabic_digit + ext_arabic_digit, 0))

        # RFC 5892 Rule A.9 (Extended Arabic-Indic Digits)
        self.assertTrue(idna.valid_contexto(ext_arabic_digit + ext_arabic_digit, 0))
        self.assertFalse(idna.valid_contexto(ext_arabic_digit + arabic_digit, 0))
Beispiel #3
0
    def test_valid_contexto(self):

        latin = u'\u0061'
        latin_l = u'\u006c'
        greek = u'\u03b1'
        hebrew = u'\u05d0'
        katakana = u'\u30a1'
        hiragana = u'\u3041'
        han = u'\u6f22'
        arabic_digit = u'\u0660'
        ext_arabic_digit = u'\u06f0'

        # RFC 5892 Rule A.3 (Middle Dot)
        latin_middle_dot = u'\u00b7'
        self.assertTrue(
            idna.valid_contexto(latin_l + latin_middle_dot + latin_l, 1))
        self.assertFalse(idna.valid_contexto(latin_middle_dot + latin_l, 1))
        self.assertFalse(idna.valid_contexto(latin_l + latin_middle_dot, 0))
        self.assertFalse(idna.valid_contexto(latin_middle_dot, 0))
        self.assertFalse(
            idna.valid_contexto(latin_l + latin_middle_dot + latin, 1))

        # RFC 5892 Rule A.4 (Greek Lower Numeral Sign)
        glns = u'\u0375'
        self.assertTrue(idna.valid_contexto(glns + greek, 0))
        self.assertFalse(idna.valid_contexto(glns + latin, 0))
        self.assertFalse(idna.valid_contexto(glns, 0))
        self.assertFalse(idna.valid_contexto(greek + glns, 1))

        # RFC 5892 Rule A.5 (Hebrew Punctuation Geresh)
        geresh = u'\u05f3'
        self.assertTrue(idna.valid_contexto(hebrew + geresh, 1))
        self.assertFalse(idna.valid_contexto(latin + geresh, 1))

        # RFC 5892 Rule A.6 (Hebrew Punctuation Gershayim)
        gershayim = u'\u05f4'
        self.assertTrue(idna.valid_contexto(hebrew + gershayim, 1))
        self.assertFalse(idna.valid_contexto(latin + gershayim, 1))

        # RFC 5892 Rule A.7 (Katakana Middle Dot)
        ja_middle_dot = u'\u30fb'
        self.assertTrue(
            idna.valid_contexto(katakana + ja_middle_dot + katakana, 1))
        self.assertTrue(
            idna.valid_contexto(hiragana + ja_middle_dot + hiragana, 1))
        self.assertTrue(idna.valid_contexto(han + ja_middle_dot + han, 1))
        self.assertTrue(idna.valid_contexto(han + ja_middle_dot + latin, 1))
        self.assertTrue(idna.valid_contexto(u'\u6f22\u30fb\u5b57', 1))
        self.assertFalse(idna.valid_contexto(u'\u0061\u30fb\u0061', 1))

        # RFC 5892 Rule A.8 (Arabic-Indic Digits)
        self.assertTrue(idna.valid_contexto(arabic_digit + arabic_digit, 0))
        self.assertFalse(
            idna.valid_contexto(arabic_digit + ext_arabic_digit, 0))

        # RFC 5892 Rule A.9 (Extended Arabic-Indic Digits)
        self.assertTrue(
            idna.valid_contexto(ext_arabic_digit + ext_arabic_digit, 0))
        self.assertFalse(
            idna.valid_contexto(ext_arabic_digit + arabic_digit, 0))