1from translate.lang import factory 2 3 4def test_punctranslate(): 5 """Tests that we can translate punctuation.""" 6 language = factory.getlanguage("fa") 7 assert language.punctranslate("") == "" 8 assert language.punctranslate("abc efg") == "abc efg" 9 assert language.punctranslate("abc efg.") == "abc efg." 10 assert language.punctranslate("Delete file: %s?") == "Delete file: %s؟" 11 assert language.punctranslate('"root" is powerful') == "«root» is powerful" 12 assert language.punctranslate("'root' is powerful") == "«root» is powerful" 13 assert language.punctranslate("`root' is powerful") == "«root» is powerful" 14 assert language.punctranslate('The user "root"') == "The user «root»" 15 assert language.punctranslate("The user 'root'") == "The user «root»" 16 assert language.punctranslate("The user `root'") == "The user «root»" 17 assert language.punctranslate('The user "root"?') == "The user «root»؟" 18 assert language.punctranslate("The user 'root'?") == "The user «root»؟" 19 assert language.punctranslate("The user `root'?") == "The user «root»؟" 20 assert language.punctranslate('Watch the " mark') == 'Watch the " mark' 21 assert language.punctranslate("Watch the ' mark") == "Watch the ' mark" 22 assert language.punctranslate("Watch the ` mark") == "Watch the ` mark" 23 assert language.punctranslate("Watch the “mark”") == "Watch the «mark»" 24 assert ( 25 language.punctranslate('The <a href="info">user</a> "root"?') 26 == 'The <a href="info">user</a> «root»؟' 27 ) 28 assert ( 29 language.punctranslate("The <a href='info'>user</a> 'root'?") 30 == "The <a href='info'>user</a> «root»؟" 31 ) 32 # Broken because we test for equal number of ` and ' in the string 33 # assert language.punctranslate("The <a href='info'>user</a> `root'?") == "The <a href='info'>user</a> «root»؟" 34 assert ( 35 language.punctranslate("The <a href='http://koeie'>user</a>") 36 == "The <a href='http://koeie'>user</a>" 37 ) 38 39 assert language.punctranslate("Copying `%s' to `%s'") == "Copying «%s» to «%s»" 40 # We are very careful by checking that the ` and ' match, so we miss this because of internal punctuation: 41 # assert language.punctranslate("Shlib `%s' didn't contain `%s'") == "Shlib «%s» didn't contain «%s»" 42 43 44def test_sentences(): 45 """Tests basic functionality of sentence segmentation.""" 46 language = factory.getlanguage("fa") 47 sentences = language.sentences("") 48 assert sentences == [] 49 50 sentences = language.sentences("Normal case. Nothing interesting.") 51 assert sentences == ["Normal case.", "Nothing interesting."] 52 sentences = language.sentences("Is that the case ? Sounds interesting !") 53 assert sentences == ["Is that the case ?", "Sounds interesting !"] 54