12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import sys, os
- import unittest
- import win32rcparser
- import win32con
- import tempfile
- class TestParser(unittest.TestCase):
- def setUp(self):
- rc_file = os.path.join(os.path.dirname(__file__), "win32rcparser", "test.rc")
- self.resources = win32rcparser.Parse(rc_file)
- def testStrings(self):
- for sid, expected in [
- ("IDS_TEST_STRING4", "Test 'single quoted' string"),
- ("IDS_TEST_STRING1", 'Test "quoted" string'),
- ("IDS_TEST_STRING3", 'String with single " quote'),
- ("IDS_TEST_STRING2", 'Test string'),
- ]:
- got = self.resources.stringTable[sid].value
- self.assertEqual(got, expected)
- def testStandardIds(self):
- for idc in "IDOK IDCANCEL".split():
- correct = getattr(win32con, idc)
- self.assertEqual(self.resources.names[correct], idc)
- self.assertEqual(self.resources.ids[idc], correct)
- def testTabStop(self):
- d = self.resources.dialogs["IDD_TEST_DIALOG2"]
- tabstop_names = ["IDC_EDIT1", "IDOK"] # should have WS_TABSTOP
- tabstop_ids = [self.resources.ids[name] for name in tabstop_names]
- notabstop_names = ["IDC_EDIT2"] # should have WS_TABSTOP
- notabstop_ids = [self.resources.ids[name] for name in notabstop_names]
- num_ok = 0
- for cdef in d[1:]: # skip dlgdef
- #print cdef
- cid = cdef[2]
- style = cdef[-2]
- styleex = cdef[-1]
- if cid in tabstop_ids:
- self.failUnlessEqual(style & win32con.WS_TABSTOP, win32con.WS_TABSTOP)
- num_ok += 1
- elif cid in notabstop_ids:
- self.failUnlessEqual(style & win32con.WS_TABSTOP, 0)
- num_ok += 1
- self.failUnlessEqual(num_ok, len(tabstop_ids) + len(notabstop_ids))
- class TestGenerated(TestParser):
- def setUp(self):
- # don't call base!
- rc_file = os.path.join(os.path.dirname(__file__), "win32rcparser", "test.rc")
- py_file = tempfile.mktemp('test_win32rcparser.py')
- try:
- win32rcparser.GenerateFrozenResource(rc_file, py_file)
- py_source = open(py_file).read()
- finally:
- if os.path.isfile(py_file):
- os.unlink(py_file)
-
- # poor-man's import :)
- globs = {}
- exec(py_source, globs, globs)
- self.resources = globs["FakeParser"]()
- if __name__=='__main__':
- unittest.main()
|