177 lines
6.7 KiB
Python
177 lines
6.7 KiB
Python
import unittest
|
|
|
|
class Test_get_metadata(unittest.TestCase):
|
|
|
|
def _callFUT(self, path, metadata_version=None):
|
|
from pkginfo.utils import get_metadata
|
|
if metadata_version is not None:
|
|
return get_metadata(path, metadata_version)
|
|
return get_metadata(path)
|
|
|
|
def _checkMyPackage(self, dist, filename):
|
|
self.assertEqual(dist.filename, filename)
|
|
self.assertEqual(dist.name, 'mypackage')
|
|
self.assertEqual(dist.version, '0.1')
|
|
self.assertEqual(dist.keywords, None)
|
|
self.assertEqual(list(dist.supported_platforms), [])
|
|
|
|
def _checkClassifiers(self, dist):
|
|
self.assertEqual(list(dist.classifiers),
|
|
['Development Status :: 4 - Beta',
|
|
'Environment :: Console (Text Based)',
|
|
])
|
|
|
|
def test_w_gztar(self):
|
|
import os
|
|
d, _ = os.path.split(__file__)
|
|
filename = '%s/../../docs/examples/mypackage-0.1.tar.gz' % d
|
|
dist = self._callFUT(filename)
|
|
self.assertEqual(dist.metadata_version, '1.0')
|
|
self._checkMyPackage(dist, filename)
|
|
|
|
def test_w_gztar_and_metadata_version(self):
|
|
import os
|
|
d, _ = os.path.split(__file__)
|
|
filename = '%s/../../docs/examples/mypackage-0.1.tar.gz' % d
|
|
dist = self._callFUT(filename, metadata_version='1.1')
|
|
self.assertEqual(dist.metadata_version, '1.1')
|
|
self._checkMyPackage(dist, filename)
|
|
self._checkClassifiers(dist)
|
|
|
|
def test_w_bztar(self):
|
|
import os
|
|
d, _ = os.path.split(__file__)
|
|
filename = '%s/../../docs/examples/mypackage-0.1.tar.bz2' % d
|
|
dist = self._callFUT(filename)
|
|
self.assertEqual(dist.metadata_version, '1.0')
|
|
self._checkMyPackage(dist, filename)
|
|
|
|
def test_w_bztar_and_metadata_version(self):
|
|
import os
|
|
d, _ = os.path.split(__file__)
|
|
filename = '%s/../../docs/examples/mypackage-0.1.tar.bz2' % d
|
|
dist = self._callFUT(filename, metadata_version='1.1')
|
|
self.assertEqual(dist.metadata_version, '1.1')
|
|
self._checkMyPackage(dist, filename)
|
|
self._checkClassifiers(dist)
|
|
|
|
def test_w_zip(self):
|
|
import os
|
|
d, _ = os.path.split(__file__)
|
|
filename = '%s/../../docs/examples/mypackage-0.1.zip' % d
|
|
dist = self._callFUT(filename)
|
|
self.assertEqual(dist.metadata_version, '1.0')
|
|
self._checkMyPackage(dist, filename)
|
|
|
|
def test_w_zip_and_metadata_version(self):
|
|
import os
|
|
d, _ = os.path.split(__file__)
|
|
filename = '%s/../../docs/examples/mypackage-0.1.zip' % d
|
|
dist = self._callFUT(filename, metadata_version='1.1')
|
|
self.assertEqual(dist.metadata_version, '1.1')
|
|
self._checkMyPackage(dist, filename)
|
|
self._checkClassifiers(dist)
|
|
|
|
def test_w_egg(self):
|
|
import os
|
|
d, _ = os.path.split(__file__)
|
|
filename = '%s/../../docs/examples/mypackage-0.1-py2.6.egg' % d
|
|
dist = self._callFUT(filename)
|
|
self.assertEqual(dist.metadata_version, '1.0')
|
|
self._checkMyPackage(dist, filename)
|
|
|
|
def test_w_egg_and_metadata_version(self):
|
|
import os
|
|
d, _ = os.path.split(__file__)
|
|
filename = '%s/../../docs/examples/mypackage-0.1-py2.6.egg' % d
|
|
dist = self._callFUT(filename, metadata_version='1.1')
|
|
self.assertEqual(dist.metadata_version, '1.1')
|
|
self._checkMyPackage(dist, filename)
|
|
self._checkClassifiers(dist)
|
|
|
|
def test_w_wheel(self):
|
|
import os
|
|
d, _ = os.path.split(__file__)
|
|
filename = ('%s/../../docs/examples/'
|
|
'mypackage-0.1-cp26-none-linux_x86_64.whl') % d
|
|
dist = self._callFUT(filename)
|
|
self.assertEqual(dist.metadata_version, '2.0')
|
|
self._checkMyPackage(dist, filename)
|
|
|
|
def test_w_wheel_and_metadata_version(self):
|
|
import os
|
|
d, _ = os.path.split(__file__)
|
|
filename = ('%s/../../docs/examples/'
|
|
'mypackage-0.1-cp26-none-linux_x86_64.whl') % d
|
|
dist = self._callFUT(filename, metadata_version='1.1')
|
|
self.assertEqual(dist.metadata_version, '1.1')
|
|
self._checkMyPackage(dist, filename)
|
|
self._checkClassifiers(dist)
|
|
|
|
def test_w_module(self):
|
|
from pkginfo.tests import _defaultMetadataVersion
|
|
EXPECTED = _defaultMetadataVersion()
|
|
import pkginfo
|
|
from pkginfo.tests import _checkSample
|
|
dist = self._callFUT(pkginfo)
|
|
self.assertEqual(dist.metadata_version, EXPECTED)
|
|
_checkSample(self, dist)
|
|
|
|
def test_w_module_and_metadata_version(self):
|
|
import pkginfo
|
|
from pkginfo.tests import _checkSample
|
|
from pkginfo.tests import _checkClassifiers
|
|
dist = self._callFUT(pkginfo, metadata_version='1.2')
|
|
self.assertEqual(dist.metadata_version, '1.2')
|
|
_checkSample(self, dist)
|
|
_checkClassifiers(self, dist)
|
|
|
|
def test_w_package_name(self):
|
|
from pkginfo.tests import _defaultMetadataVersion
|
|
EXPECTED = _defaultMetadataVersion()
|
|
from pkginfo.tests import _checkSample
|
|
dist = self._callFUT('pkginfo')
|
|
self.assertEqual(dist.metadata_version, EXPECTED)
|
|
_checkSample(self, dist)
|
|
|
|
def test_w_package_name_and_metadata_version(self):
|
|
from pkginfo.tests import _checkSample
|
|
from pkginfo.tests import _checkClassifiers
|
|
dist = self._callFUT('pkginfo', metadata_version='1.2')
|
|
self.assertEqual(dist.metadata_version, '1.2')
|
|
_checkSample(self, dist)
|
|
_checkClassifiers(self, dist)
|
|
|
|
def test_w_directory_no_EGG_INFO(self):
|
|
import os
|
|
import warnings
|
|
dir, name = os.path.split(__file__)
|
|
subdir = os.path.join(dir, 'funny')
|
|
old_filters = warnings.filters[:]
|
|
warnings.filterwarnings('ignore')
|
|
try:
|
|
dist = self._callFUT(subdir)
|
|
self.assertEqual(dist.path, subdir)
|
|
self.assertEqual(dist.name, None)
|
|
self.assertEqual(dist.version, None)
|
|
finally:
|
|
warnings.filters[:] = old_filters
|
|
|
|
def test_w_directory(self):
|
|
import os
|
|
dir, name = os.path.split(__file__)
|
|
subdir = os.path.join(dir, 'silly')
|
|
dist = self._callFUT(subdir)
|
|
self.assertEqual(dist.metadata_version, '1.0')
|
|
self.assertEqual(dist.name, 'silly')
|
|
self.assertEqual(dist.version, '0.1')
|
|
|
|
def test_w_directory_and_metadata_version(self):
|
|
import os
|
|
dir, name = os.path.split(__file__)
|
|
subdir = os.path.join(dir, 'silly')
|
|
dist = self._callFUT(subdir, metadata_version='1.2')
|
|
self.assertEqual(dist.metadata_version, '1.2')
|
|
self.assertEqual(dist.name, 'silly')
|
|
self.assertEqual(dist.version, '0.1')
|