| Martin v. Löwis | f8d887e | 2011-03-27 21:05:51 +0200 | [diff] [blame] | 1 | """ Test suite for the code in msilib """ | 
 | 2 | import unittest | 
 | 3 | import os | 
 | 4 | from test.support import run_unittest, import_module | 
 | 5 | msilib = import_module('msilib') | 
 | 6 |  | 
 | 7 | class Test_make_id(unittest.TestCase): | 
 | 8 |     #http://msdn.microsoft.com/en-us/library/aa369212(v=vs.85).aspx | 
 | 9 |     """The Identifier data type is a text string. Identifiers may contain the | 
 | 10 |     ASCII characters A-Z (a-z), digits, underscores (_), or periods (.). | 
 | 11 |     However, every identifier must begin with either a letter or an | 
 | 12 |     underscore. | 
 | 13 |     """ | 
 | 14 |  | 
 | 15 |     def test_is_no_change_required(self): | 
 | 16 |         self.assertEqual( | 
 | 17 |             msilib.make_id("short"), "short") | 
 | 18 |         self.assertEqual( | 
 | 19 |             msilib.make_id("nochangerequired"), "nochangerequired") | 
 | 20 |         self.assertEqual( | 
 | 21 |             msilib.make_id("one.dot"), "one.dot") | 
 | 22 |         self.assertEqual( | 
 | 23 |             msilib.make_id("_"), "_") | 
 | 24 |         self.assertEqual( | 
 | 25 |             msilib.make_id("a"), "a") | 
 | 26 |         #self.assertEqual( | 
 | 27 |         #    msilib.make_id(""), "") | 
 | 28 |  | 
 | 29 |     def test_invalid_first_char(self): | 
 | 30 |         self.assertEqual( | 
 | 31 |             msilib.make_id("9.short"), "_9.short") | 
 | 32 |         self.assertEqual( | 
 | 33 |             msilib.make_id(".short"), "_.short") | 
 | 34 |  | 
 | 35 |     def test_invalid_any_char(self): | 
 | 36 |         self.assertEqual( | 
 | 37 |             msilib.make_id(".s\x82ort"), "_.s_ort") | 
 | 38 |         self.assertEqual    ( | 
 | 39 |             msilib.make_id(".s\x82o?*+rt"), "_.s_o___rt") | 
 | 40 |  | 
 | 41 |  | 
 | 42 | def test_main(): | 
 | 43 |     run_unittest(__name__) | 
 | 44 |  | 
 | 45 | if __name__ == '__main__': | 
 | 46 |     test_main() |