diff options
Diffstat (limited to 'src/distutils2/tests/test_metadata.py')
| -rw-r--r-- | src/distutils2/tests/test_metadata.py | 108 |
1 files changed, 61 insertions, 47 deletions
diff --git a/src/distutils2/tests/test_metadata.py b/src/distutils2/tests/test_metadata.py index 16e19bb..ee763c0 100644 --- a/src/distutils2/tests/test_metadata.py +++ b/src/distutils2/tests/test_metadata.py @@ -5,9 +5,12 @@ from StringIO import StringIO from distutils2.metadata import (DistributionMetadata, _interpret, PKG_INFO_PREFERRED_VERSION) -from distutils2.tests.support import unittest +from distutils2.tests import run_unittest +from distutils2.tests.support import unittest, LoggingSilencer +from distutils2.errors import (MetadataConflictError, + MetadataUnrecognizedVersionError) -class DistributionMetadataTestCase(unittest.TestCase): +class DistributionMetadataTestCase(LoggingSilencer, unittest.TestCase): def test_interpret(self): @@ -15,15 +18,15 @@ class DistributionMetadataTestCase(unittest.TestCase): version = sys.version.split()[0] os_name = os.name - assert _interpret("sys.platform == '%s'" % platform) - assert _interpret("sys.platform == '%s' or python_version == '2.4'" \ - % platform) - assert _interpret("sys.platform == '%s' and " - "python_full_version == '%s'"\ - % (platform, version)) - assert _interpret("'%s' == sys.platform" % platform) + self.assertTrue(_interpret("sys.platform == '%s'" % platform)) + self.assertTrue(_interpret( + "sys.platform == '%s' or python_version == '2.4'" % platform)) + self.assertTrue(_interpret( + "sys.platform == '%s' and python_full_version == '%s'" % + (platform, version))) + self.assertTrue(_interpret("'%s' == sys.platform" % platform)) - assert _interpret('os.name == "%s"' % os_name) + self.assertTrue(_interpret('os.name == "%s"' % os_name)) # stuff that need to raise a syntax error ops = ('os.name == os.name', 'os.name == 2', "'2' == '2'", @@ -35,24 +38,25 @@ class DistributionMetadataTestCase(unittest.TestCase): OP = 'os.name == "%s"' % os_name AND = ' and ' OR = ' or ' - assert _interpret(OP+AND+OP) - assert _interpret(OP+AND+OP+AND+OP) - assert _interpret(OP+OR+OP) - assert _interpret(OP+OR+OP+OR+OP) + self.assertTrue(_interpret(OP + AND + OP)) + self.assertTrue(_interpret(OP + AND + OP + AND + OP)) + self.assertTrue(_interpret(OP + OR + OP)) + self.assertTrue(_interpret(OP + OR + OP + OR + OP)) # other operators - assert _interpret("os.name != 'buuuu'") - assert _interpret("python_version > '1.0'") - assert _interpret("python_version < '5.0'") - assert _interpret("python_version <= '5.0'") - assert _interpret("python_version >= '1.0'") - assert _interpret("'%s' in os.name" % os_name) - assert _interpret("'buuuu' not in os.name") - assert _interpret("'buuuu' not in os.name and '%s' in os.name" \ - % os_name) + self.assertTrue(_interpret("os.name != 'buuuu'")) + self.assertTrue(_interpret("python_version > '1.0'")) + self.assertTrue(_interpret("python_version < '5.0'")) + self.assertTrue(_interpret("python_version <= '5.0'")) + self.assertTrue(_interpret("python_version >= '1.0'")) + self.assertTrue(_interpret("'%s' in os.name" % os_name)) + self.assertTrue(_interpret("'buuuu' not in os.name")) + self.assertTrue(_interpret( + "'buuuu' not in os.name and '%s' in os.name" % os_name)) # execution context - assert _interpret('python_version == "0.1"', {'python_version': '0.1'}) + self.assertTrue(_interpret('python_version == "0.1"', + {'python_version': '0.1'})) def test_metadata_read_write(self): @@ -63,25 +67,28 @@ class DistributionMetadataTestCase(unittest.TestCase): res.seek(0) res = res.read() f = open(PKG_INFO) - wanted = f.read() + try: + # XXX this is not used + wanted = f.read() + finally: + f.close() self.assertTrue('Keywords: keyring,password,crypt' in res) - f.close() def test_metadata_markers(self): # see if we can be platform-aware PKG_INFO = os.path.join(os.path.dirname(__file__), 'PKG-INFO') content = open(PKG_INFO).read() content = content % sys.platform - metadata = DistributionMetadata(platform_dependant=True) + metadata = DistributionMetadata(platform_dependent=True) metadata.read_file(StringIO(content)) - self.assertEquals(metadata['Requires-Dist'], ['bar']) + self.assertEqual(metadata['Requires-Dist'], ['bar']) # test with context context = {'sys.platform': 'okook'} - metadata = DistributionMetadata(platform_dependant=True, + metadata = DistributionMetadata(platform_dependent=True, execution_context=context) metadata.read_file(StringIO(content)) - self.assertEquals(metadata['Requires-Dist'], ['foo']) + self.assertEqual(metadata['Requires-Dist'], ['foo']) def test_description(self): PKG_INFO = os.path.join(os.path.dirname(__file__), 'PKG-INFO') @@ -93,14 +100,14 @@ class DistributionMetadataTestCase(unittest.TestCase): # see if we can read the description now DESC = os.path.join(os.path.dirname(__file__), 'LONG_DESC.txt') wanted = open(DESC).read() - self.assertEquals(wanted, metadata['Description']) + self.assertEqual(wanted, metadata['Description']) # save the file somewhere and make sure we can read it back out = StringIO() metadata.write_file(out) out.seek(0) metadata.read_file(out) - self.assertEquals(wanted, metadata['Description']) + self.assertEqual(wanted, metadata['Description']) def test_mapper_apis(self): PKG_INFO = os.path.join(os.path.dirname(__file__), 'PKG-INFO') @@ -115,25 +122,32 @@ class DistributionMetadataTestCase(unittest.TestCase): def test_versions(self): metadata = DistributionMetadata() metadata['Obsoletes'] = 'ok' - self.assertEquals(metadata['Metadata-Version'], '1.1') + self.assertEqual(metadata['Metadata-Version'], '1.1') del metadata['Obsoletes'] metadata['Obsoletes-Dist'] = 'ok' - self.assertEquals(metadata['Metadata-Version'], '1.2') + self.assertEqual(metadata['Metadata-Version'], '1.2') + + self.assertRaises(MetadataConflictError, metadata.set, + 'Obsoletes', 'ok') + del metadata['Obsoletes'] del metadata['Obsoletes-Dist'] metadata['Version'] = '1' - self.assertEquals(metadata['Metadata-Version'], '1.0') + self.assertEqual(metadata['Metadata-Version'], '1.0') PKG_INFO = os.path.join(os.path.dirname(__file__), 'SETUPTOOLS-PKG-INFO') metadata.read_file(StringIO(open(PKG_INFO).read())) - self.assertEquals(metadata['Metadata-Version'], '1.0') + self.assertEqual(metadata['Metadata-Version'], '1.0') PKG_INFO = os.path.join(os.path.dirname(__file__), 'SETUPTOOLS-PKG-INFO2') metadata.read_file(StringIO(open(PKG_INFO).read())) - self.assertEquals(metadata['Metadata-Version'], '1.1') + self.assertEqual(metadata['Metadata-Version'], '1.1') + + metadata.version = '1.618' + self.assertRaises(MetadataUnrecognizedVersionError, metadata.keys) def test_warnings(self): metadata = DistributionMetadata() @@ -161,7 +175,7 @@ class DistributionMetadataTestCase(unittest.TestCase): # we should have a certain amount of warnings num_wanted = len(values) - self.assertEquals(num_wanted, res) + self.assertEqual(num_wanted, res) def test_multiple_predicates(self): metadata = DistributionMetadata() @@ -184,29 +198,29 @@ class DistributionMetadataTestCase(unittest.TestCase): res = m.warns del m.warns - self.assertEquals(res, 0) + self.assertEqual(res, 0) def test_project_url(self): metadata = DistributionMetadata() metadata['Project-URL'] = [('one', 'http://ok')] - self.assertEquals(metadata['Project-URL'], + self.assertEqual(metadata['Project-URL'], [('one', 'http://ok')]) - self.assertEquals(metadata.version, '1.2') + self.assertEqual(metadata.version, '1.2') def test_check(self): metadata = DistributionMetadata() metadata['Version'] = 'rr' metadata['Requires-dist'] = ['Foo (a)'] missing, warnings = metadata.check() - self.assertEquals(missing, ['Name', 'Home-page']) - self.assertEquals(len(warnings), 2) + self.assertEqual(missing, ['Name', 'Home-page']) + self.assertEqual(len(warnings), 2) def test_best_choice(self): metadata = DistributionMetadata() metadata['Version'] = '1.0' - self.assertEquals(metadata.version, PKG_INFO_PREFERRED_VERSION) + self.assertEqual(metadata.version, PKG_INFO_PREFERRED_VERSION) metadata['Classifier'] = ['ok'] - self.assertEquals(metadata.version, '1.2') + self.assertEqual(metadata.version, '1.2') def test_project_urls(self): # project-url is a bit specific, make sure we write it @@ -214,7 +228,7 @@ class DistributionMetadataTestCase(unittest.TestCase): metadata = DistributionMetadata() metadata['Version'] = '1.0' metadata['Project-Url'] = [('one', 'http://ok')] - self.assertEquals(metadata['Project-Url'], [('one', 'http://ok')]) + self.assertEqual(metadata['Project-Url'], [('one', 'http://ok')]) file_ = StringIO() metadata.write_file(file_) file_.seek(0) @@ -224,7 +238,7 @@ class DistributionMetadataTestCase(unittest.TestCase): file_.seek(0) metadata = DistributionMetadata() metadata.read_file(file_) - self.assertEquals(metadata['Project-Url'], [('one', 'http://ok')]) + self.assertEqual(metadata['Project-Url'], [('one', 'http://ok')]) def test_suite(): |
