summaryrefslogtreecommitdiff
path: root/src/distutils2/tests/test_metadata.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/distutils2/tests/test_metadata.py')
-rw-r--r--src/distutils2/tests/test_metadata.py108
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():