Locale Tests (#1079)

* Locale tests redo

* Add helper

* Remove line break if found.

* Fix imports

* Remove copy that snuck in

* Install language packs

* Change language pack install

* fix china language pack

* Fix tests that I accidentially broke

* Add debug print

* Don't try and parse Travis cache dirs

* Fix counting
This commit is contained in:
Ebag333
2017-04-02 15:53:14 -07:00
committed by GitHub
parent 3dd539b4f0
commit d2af4f7d9c
13 changed files with 384 additions and 0 deletions

View File

@@ -0,0 +1,93 @@
# noinspection PyPackageRequirements
import wx
import sys
import os
import sys
script_dir = os.path.dirname(os.path.abspath(__file__))
# Add root to python paths, this allows us to import submodules
sys.path.append(os.path.realpath(os.path.join(script_dir, '..', '..')))
from _development.helpers_locale import GetPath, GetUnicodePath
class MyForm(wx.Frame):
# ----------------------------------------------------------------------
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY, "CTRL-O to open, CTRL-S to save", size=(500, 500))
# Add a panel so it looks the correct on all platforms
panel = wx.Panel(self, wx.ID_ANY)
SAVE_FILE_ID = wx.NewId()
self.Bind(wx.EVT_MENU, self.saveFile, id=SAVE_FILE_ID)
LOAD_FILE_ID = wx.NewId()
self.Bind(wx.EVT_MENU, self.loadFile, id=LOAD_FILE_ID)
accel_tbl = wx.AcceleratorTable([(wx.ACCEL_CTRL, ord('O'), LOAD_FILE_ID),
(wx.ACCEL_CTRL, ord('S'), SAVE_FILE_ID)]
)
self.SetAcceleratorTable(accel_tbl)
# ----------------------------------------------------------------------
def loadFile(self, event):
openFileDialog = wx.FileDialog(self, "Open", "", "",
"Python files (*.py)|*.py",
wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)
openFileDialog.ShowModal()
path = openFileDialog.GetPath()
try:
os_walk_without_codec = GetPath(path)
except (UnicodeEncodeError, UnicodeTranslateError, UnicodeError, UnicodeDecodeError, UnicodeWarning, TypeError) as e:
os_walk_without_codec = e
try:
os_walk_with_system_codec = GetPath(path, None, sys.getdefaultencoding())
except (UnicodeEncodeError, UnicodeTranslateError, UnicodeError, UnicodeDecodeError, UnicodeWarning, TypeError) as e:
os_walk_with_system_codec = e
try:
os_walk_unicode_without_codec = GetUnicodePath(path)
except (UnicodeEncodeError, UnicodeTranslateError, UnicodeError, UnicodeDecodeError, UnicodeWarning, TypeError) as e:
os_walk_unicode_without_codec = e
try:
os_walk_unicode_with_system_codec = GetUnicodePath(path, None, sys.getdefaultencoding())
except (UnicodeEncodeError, UnicodeTranslateError, UnicodeError, UnicodeDecodeError, UnicodeWarning, TypeError) as e:
os_walk_unicode_with_system_codec = e
print("Simple print:")
print(path)
print("Type:")
print(type(path))
print("OS Walk: No Codec:")
print(os_walk_without_codec)
print("OS Walk: Default System Codec:")
print(os_walk_with_system_codec)
print("OS Unicode Walk: No Codec:")
print(os_walk_unicode_without_codec)
print("OS Unicode Walk: Default System Codec:")
print(os_walk_unicode_with_system_codec)
openFileDialog.Destroy()
# ----------------------------------------------------------------------
def saveFile(self, event):
saveFileDialog = wx.FileDialog(self, "Save As", "", "",
"Python files (*.py)|*.py",
wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT)
saveFileDialog.ShowModal()
saveFileDialog.GetPath()
saveFileDialog.Destroy()
# Run the program
if __name__ == "__main__":
app = wx.App(False)
frame = MyForm()
frame.Show()
app.MainLoop()

View File

@@ -0,0 +1 @@
Use this to dynamically test languages.

View File

@@ -0,0 +1,36 @@
# English
import os
import platform
import sys
script_dir = os.path.dirname(os.path.abspath(__file__))
# Add root to python paths, this allows us to import submodules
sys.path.append(os.path.realpath(os.path.join(script_dir, '..', '..', '..')))
from _development.helpers_locale import GetPath
def test_codec_english():
use_codec = {
"Windows": "cp1252",
"Linux" : "utf8",
"Darwin" : "utf8",
}
os_name = platform.system()
current_directory = os.path.dirname(os.path.abspath(__file__))
try:
decoded_file = GetPath(current_directory, "testcodec", use_codec[os_name])
except:
assert False, "Specified codec (" + use_codec[os_name] + ") failed to decrypt file path."
try:
with open(decoded_file, 'r') as f:
read_data = f.read()
f.closed
except:
assert False, "Specified codec (" + use_codec[os_name] + ") failed to read file."
assert read_data == "True"

View File

@@ -0,0 +1 @@
True

View File

@@ -0,0 +1,40 @@
import os
import sys
script_dir = os.path.dirname(os.path.abspath(__file__))
# Add root to python paths, this allows us to import submodules
sys.path.append(os.path.realpath(os.path.join(script_dir, '..', '..')))
from _development.helpers_locale import GetPath
def test_os_walk():
current_directory = os.path.dirname(os.path.abspath(unicode(__file__)))
subfolders = os.listdir(current_directory)
subfolders = [e for e in subfolders if not (e.endswith(".py") or e.endswith(".pyc") or e.endswith(".md"))]
subfolder_count = 0
for subfolder in subfolders:
subdir = GetPath(current_directory, subfolder)
testfile = GetPath(subdir, "testcodec")
if "__pycache__" in testfile:
# Grabbed a Travis temp folder, skip any assertions, but count it.
subfolder_count += 1
continue
# noinspection PyBroadException
try:
with open(testfile, 'r') as f:
read_data = f.read()
# noinspection PyStatementEffect
f.closed
except:
print("Test File:")
print(testfile)
assert False, "Failed to read file."
read_data = read_data.replace("\n", "")
assert read_data == "True"
subfolder_count += 1
assert len(subfolders) == subfolder_count

View File

@@ -0,0 +1,36 @@
# Russian
import os
import platform
import sys
script_dir = os.path.dirname(os.path.abspath(__file__))
# Add root to python paths, this allows us to import submodules
sys.path.append(os.path.realpath(os.path.join(script_dir, '..', '..', '..')))
from _development.helpers_locale import GetPath
def test_codec_russian():
use_codec = {
"Windows": "cp1251",
"Linux" : "utf8",
"Darwin" : "mac_cyrillic",
}
os_name = platform.system()
current_directory = os.path.dirname(os.path.abspath(__file__))
try:
decoded_file = GetPath(current_directory, "testcodec", use_codec[os_name])
except:
assert False, "Specified codec (" + use_codec[os_name] + ") failed to decrypt file path."
try:
with open(decoded_file, 'r') as f:
read_data = f.read()
f.closed
except:
assert False, "Specified codec (" + use_codec[os_name] + ") failed to read file."
assert read_data == "True"

View File

@@ -0,0 +1 @@
True

View File

@@ -0,0 +1,36 @@
# Hebrew
import os
import platform
import sys
script_dir = os.path.dirname(os.path.abspath(__file__))
# Add root to python paths, this allows us to import submodules
sys.path.append(os.path.realpath(os.path.join(script_dir, '..', '..', '..')))
from _development.helpers_locale import GetPath
def test_codec_hebrew():
use_codec = {
"Windows": "cp1252",
"Linux" : "utf8",
"Darwin" : "utf8",
}
os_name = platform.system()
current_directory = os.path.dirname(os.path.abspath(__file__))
try:
decoded_file = GetPath(current_directory, "testcodec", use_codec[os_name])
except:
assert False, "Specified codec (" + use_codec[os_name] + ") failed to decrypt file path."
try:
with open(decoded_file, 'r') as f:
read_data = f.read()
f.closed
except:
assert False, "Specified codec (" + use_codec[os_name] + ") failed to read file."
assert read_data == "True"

View File

@@ -0,0 +1 @@
True

View File

@@ -0,0 +1,36 @@
# Chinese (Simplified)
import os
import platform
import sys
script_dir = os.path.dirname(os.path.abspath(__file__))
# Add root to python paths, this allows us to import submodules
sys.path.append(os.path.realpath(os.path.join(script_dir, '..', '..', '..')))
from _development.helpers_locale import GetPath
def test_codec_chinese_simplified():
use_codec = {
"Windows": "cp1252",
"Linux" : "utf8",
"Darwin" : "utf8",
}
os_name = platform.system()
current_directory = os.path.dirname(os.path.abspath(__file__))
try:
decoded_file = GetPath(current_directory, "testcodec", use_codec[os_name])
except:
assert False, "Specified codec (" + use_codec[os_name] + ") failed to decrypt file path."
try:
with open(decoded_file, 'r') as f:
read_data = f.read()
f.closed
except:
assert False, "Specified codec (" + use_codec[os_name] + ") failed to read file."
assert read_data == "True"

View File

@@ -0,0 +1 @@
True