home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 June / maximum-cd-2011-06.iso / DiscContents / LibO_3.3.1_Win_x86_install_multi.exe / libreoffice1.cab / test___future__.py < prev    next >
Encoding:
Python Source  |  2011-02-15  |  2.4 KB  |  64 lines

  1. #! /usr/bin/env python
  2. import unittest
  3. from test import test_support
  4. import __future__
  5.  
  6. GOOD_SERIALS = ("alpha", "beta", "candidate", "final")
  7.  
  8. features = __future__.all_feature_names
  9.  
  10. class FutureTest(unittest.TestCase):
  11.  
  12.     def test_names(self):
  13.         # Verify that all_feature_names appears correct.
  14.         given_feature_names = features[:]
  15.         for name in dir(__future__):
  16.             obj = getattr(__future__, name, None)
  17.             if obj is not None and isinstance(obj, __future__._Feature):
  18.                 self.assert_(
  19.                     name in given_feature_names,
  20.                     "%r should have been in all_feature_names" % name
  21.                 )
  22.                 given_feature_names.remove(name)
  23.         self.assertEqual(len(given_feature_names), 0,
  24.                "all_feature_names has too much: %r" % given_feature_names)
  25.  
  26.     def test_attributes(self):
  27.         for feature in features:
  28.             value = getattr(__future__, feature)
  29.  
  30.             optional = value.getOptionalRelease()
  31.             mandatory = value.getMandatoryRelease()
  32.  
  33.             a = self.assert_
  34.             e = self.assertEqual
  35.             def check(t, name):
  36.                 a(isinstance(t, tuple), "%s isn't tuple" % name)
  37.                 e(len(t), 5, "%s isn't 5-tuple" % name)
  38.                 (major, minor, micro, level, serial) = t
  39.                 a(isinstance(major, int), "%s major isn't int"  % name)
  40.                 a(isinstance(minor, int), "%s minor isn't int" % name)
  41.                 a(isinstance(micro, int), "%s micro isn't int" % name)
  42.                 a(isinstance(level, basestring),
  43.                     "%s level isn't string" % name)
  44.                 a(level in GOOD_SERIALS,
  45.                        "%s level string has unknown value" % name)
  46.                 a(isinstance(serial, int), "%s serial isn't int" % name)
  47.  
  48.             check(optional, "optional")
  49.             if mandatory is not None:
  50.                 check(mandatory, "mandatory")
  51.                 a(optional < mandatory,
  52.                        "optional not less than mandatory, and mandatory not None")
  53.  
  54.             a(hasattr(value, "compiler_flag"),
  55.                    "feature is missing a .compiler_flag attr")
  56.             a(isinstance(getattr(value, "compiler_flag"), int),
  57.                    ".compiler_flag isn't int")
  58.  
  59. def test_main():
  60.     test_support.run_unittest(FutureTest)
  61.  
  62. if __name__ == "__main__":
  63.     test_main()
  64.