Forking what is left of ZeroNet and hopefully adding an AT Proto Frontend/Proxy
at main 61 lines 2.5 kB view raw
1from Translate import Translate 2 3class TestTranslate: 4 def testTranslateStrict(self): 5 translate = Translate() 6 data = """ 7 translated = _("original") 8 not_translated = "original" 9 """ 10 data_translated = translate.translateData(data, {"_(original)": "translated"}) 11 assert 'translated = _("translated")' in data_translated 12 assert 'not_translated = "original"' in data_translated 13 14 def testTranslateStrictNamed(self): 15 translate = Translate() 16 data = """ 17 translated = _("original", "original named") 18 translated_other = _("original", "original other named") 19 not_translated = "original" 20 """ 21 data_translated = translate.translateData(data, {"_(original, original named)": "translated"}) 22 assert 'translated = _("translated")' in data_translated 23 assert 'not_translated = "original"' in data_translated 24 25 def testTranslateUtf8(self): 26 translate = Translate() 27 data = """ 28 greeting = "Hi again árvztűrőtökörfúrógép!" 29 """ 30 data_translated = translate.translateData(data, {"Hi again árvztűrőtökörfúrógép!": "Üdv újra árvztűrőtökörfúrógép!"}) 31 assert data_translated == """ 32 greeting = "Üdv újra árvztűrőtökörfúrógép!" 33 """ 34 35 def testTranslateEscape(self): 36 _ = Translate() 37 _["Hello"] = "Szia" 38 39 # Simple escaping 40 data = "{_[Hello]} {username}!" 41 username = "Hacker<script>alert('boom')</script>" 42 data_translated = _(data) 43 assert 'Szia' in data_translated 44 assert '<' not in data_translated 45 assert data_translated == "Szia Hacker&lt;script&gt;alert(&#x27;boom&#x27;)&lt;/script&gt;!" 46 47 # Escaping dicts 48 user = {"username": "Hacker<script>alert('boom')</script>"} 49 data = "{_[Hello]} {user[username]}!" 50 data_translated = _(data) 51 assert 'Szia' in data_translated 52 assert '<' not in data_translated 53 assert data_translated == "Szia Hacker&lt;script&gt;alert(&#x27;boom&#x27;)&lt;/script&gt;!" 54 55 # Escaping lists 56 users = [{"username": "Hacker<script>alert('boom')</script>"}] 57 data = "{_[Hello]} {users[0][username]}!" 58 data_translated = _(data) 59 assert 'Szia' in data_translated 60 assert '<' not in data_translated 61 assert data_translated == "Szia Hacker&lt;script&gt;alert(&#x27;boom&#x27;)&lt;/script&gt;!"