test_msilib.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. class Test_make_id(unittest.TestCase):
  7. #http://msdn.microsoft.com/en-us/library/aa369212(v=vs.85).aspx
  8. """The Identifier data type is a text string. Identifiers may contain the
  9. ASCII characters A-Z (a-z), digits, underscores (_), or periods (.).
  10. However, every identifier must begin with either a letter or an
  11. underscore.
  12. """
  13. def test_is_no_change_required(self):
  14. self.assertEqual(
  15. msilib.make_id("short"), "short")
  16. self.assertEqual(
  17. msilib.make_id("nochangerequired"), "nochangerequired")
  18. self.assertEqual(
  19. msilib.make_id("one.dot"), "one.dot")
  20. self.assertEqual(
  21. msilib.make_id("_"), "_")
  22. self.assertEqual(
  23. msilib.make_id("a"), "a")
  24. #self.assertEqual(
  25. # msilib.make_id(""), "")
  26. def test_invalid_first_char(self):
  27. self.assertEqual(
  28. msilib.make_id("9.short"), "_9.short")
  29. self.assertEqual(
  30. msilib.make_id(".short"), "_.short")
  31. def test_invalid_any_char(self):
  32. self.assertEqual(
  33. msilib.make_id(".s\x82ort"), "_.s_ort")
  34. self.assertEqual (
  35. msilib.make_id(".s\x82o?*+rt"), "_.s_o___rt")
  36. def test_main():
  37. run_unittest(__name__)
  38. if __name__ == '__main__':
  39. test_main()