mirror of
https://github.com/EvolutionAPI/evolution-client-python.git
synced 2026-02-04 22:06:22 -06:00
initial commit
This commit is contained in:
@@ -0,0 +1,165 @@
|
||||
import pathlib
|
||||
import shutil
|
||||
import sys
|
||||
import tempfile
|
||||
import unittest
|
||||
|
||||
class SDistTests(unittest.TestCase):
|
||||
|
||||
def _getTargetClass(self):
|
||||
from pkginfo.sdist import SDist
|
||||
return SDist
|
||||
|
||||
def _makeOne(self, filename=None, metadata_version=None):
|
||||
if metadata_version is not None:
|
||||
return self._getTargetClass()(filename, metadata_version)
|
||||
return self._getTargetClass()(filename)
|
||||
|
||||
def _checkSample(self, sdist, filename):
|
||||
self.assertEqual(sdist.filename, filename)
|
||||
self.assertEqual(sdist.name, 'mypackage')
|
||||
self.assertEqual(sdist.version, '0.1')
|
||||
self.assertEqual(sdist.keywords, None)
|
||||
self.assertEqual(list(sdist.supported_platforms), [])
|
||||
|
||||
def _checkClassifiers(self, sdist):
|
||||
self.assertEqual(list(sdist.classifiers),
|
||||
['Development Status :: 4 - Beta',
|
||||
'Environment :: Console (Text Based)',
|
||||
])
|
||||
|
||||
def test_ctor_w_invalid_filename(self):
|
||||
import os
|
||||
d, _ = os.path.split(__file__)
|
||||
filename = '%s/../../docs/examples/nonesuch-0.1.tar.gz' % d
|
||||
self.assertRaises(ValueError, self._makeOne, filename)
|
||||
|
||||
def test_ctor_wo_PKG_INFO(self):
|
||||
import os
|
||||
d, _ = os.path.split(__file__)
|
||||
filename = '%s/../../docs/examples/nopkginfo-0.1.zip' % d
|
||||
self.assertRaises(ValueError, self._makeOne, filename)
|
||||
|
||||
def test_ctor_w_tar(self):
|
||||
import os
|
||||
d, _ = os.path.split(__file__)
|
||||
filename = '%s/../../docs/examples/mypackage-0.1.tar' % d
|
||||
sdist = self._makeOne(filename)
|
||||
self.assertEqual(sdist.metadata_version, '1.0')
|
||||
self._checkSample(sdist, filename)
|
||||
|
||||
def test_ctor_w_gztar(self):
|
||||
import os
|
||||
d, _ = os.path.split(__file__)
|
||||
filename = '%s/../../docs/examples/mypackage-0.1.tar.gz' % d
|
||||
sdist = self._makeOne(filename)
|
||||
self.assertEqual(sdist.metadata_version, '1.0')
|
||||
self._checkSample(sdist, filename)
|
||||
|
||||
def test_ctor_w_gztar_and_metadata_version(self):
|
||||
import os
|
||||
d, _ = os.path.split(__file__)
|
||||
filename = '%s/../../docs/examples/mypackage-0.1.tar.gz' % d
|
||||
sdist = self._makeOne(filename, metadata_version='1.1')
|
||||
self._checkSample(sdist, filename)
|
||||
self.assertEqual(sdist.metadata_version, '1.1')
|
||||
self._checkClassifiers(sdist)
|
||||
|
||||
def test_ctor_w_bztar(self):
|
||||
import os
|
||||
d, _ = os.path.split(__file__)
|
||||
filename = '%s/../../docs/examples/mypackage-0.1.tar.bz2' % d
|
||||
sdist = self._makeOne(filename)
|
||||
self.assertEqual(sdist.metadata_version, '1.0')
|
||||
self._checkSample(sdist, filename)
|
||||
|
||||
def test_ctor_w_bztar_and_metadata_version(self):
|
||||
import os
|
||||
d, _ = os.path.split(__file__)
|
||||
filename = '%s/../../docs/examples/mypackage-0.1.tar.bz2' % d
|
||||
sdist = self._makeOne(filename, metadata_version='1.1')
|
||||
self.assertEqual(sdist.metadata_version, '1.1')
|
||||
self._checkSample(sdist, filename)
|
||||
self._checkClassifiers(sdist)
|
||||
|
||||
def test_ctor_w_zip(self):
|
||||
import os
|
||||
d, _ = os.path.split(__file__)
|
||||
filename = '%s/../../docs/examples/mypackage-0.1.zip' % d
|
||||
sdist = self._makeOne(filename)
|
||||
self.assertEqual(sdist.metadata_version, '1.0')
|
||||
self._checkSample(sdist, filename)
|
||||
|
||||
def test_ctor_w_zip_and_metadata_version(self):
|
||||
import os
|
||||
d, _ = os.path.split(__file__)
|
||||
filename = '%s/../../docs/examples/mypackage-0.1.zip' % d
|
||||
sdist = self._makeOne(filename, metadata_version='1.1')
|
||||
self.assertEqual(sdist.metadata_version, '1.1')
|
||||
self._checkSample(sdist, filename)
|
||||
self._checkClassifiers(sdist)
|
||||
|
||||
def test_ctor_w_bogus(self):
|
||||
import os
|
||||
d, _ = os.path.split(__file__)
|
||||
filename = '%s/../../docs/examples/mypackage-0.1.bogus' % d
|
||||
|
||||
with self.assertRaises(ValueError):
|
||||
self._makeOne(filename, metadata_version='1.1')
|
||||
|
||||
|
||||
class UnpackedMixin(object):
|
||||
def setUp(self):
|
||||
super(UnpackedMixin, self).setUp()
|
||||
self.__tmpdir = tempfile.mkdtemp()
|
||||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self.__tmpdir)
|
||||
super(UnpackedMixin, self).tearDown()
|
||||
|
||||
def _getTargetClass(self):
|
||||
from pkginfo.sdist import UnpackedSDist
|
||||
return UnpackedSDist
|
||||
|
||||
def _getTopDirectory(self):
|
||||
import os
|
||||
topnames = os.listdir(self.__tmpdir)
|
||||
assert len(topnames) == 1
|
||||
return os.path.join(self.__tmpdir, topnames[0])
|
||||
|
||||
def _getLoadFilename(self):
|
||||
return self._getTopDirectory()
|
||||
|
||||
def _makeOne(self, filename=None, metadata_version=None):
|
||||
archive, _, _ = self._getTargetClass()._get_archive(filename)
|
||||
|
||||
# Work around Python 3.12 tarfile warning.
|
||||
kwargs = {}
|
||||
if sys.version_info >= (3, 12):
|
||||
fn_path = pathlib.Path(filename)
|
||||
if ".tar" in fn_path.suffixes:
|
||||
kwargs["filter"] = "data"
|
||||
|
||||
try:
|
||||
archive.extractall(self.__tmpdir, **kwargs)
|
||||
finally:
|
||||
archive.close()
|
||||
|
||||
load_filename = self._getLoadFilename()
|
||||
|
||||
if metadata_version is not None:
|
||||
return self._getTargetClass()(load_filename, metadata_version)
|
||||
return self._getTargetClass()(load_filename)
|
||||
|
||||
def _checkSample(self, sdist, filename):
|
||||
filename = self._getTopDirectory()
|
||||
super(UnpackedMixin, self)._checkSample(sdist, filename)
|
||||
|
||||
|
||||
class UnpackedSDistGivenDirectoryTests(UnpackedMixin, SDistTests):
|
||||
pass
|
||||
|
||||
class UnpackedSDistGivenFileSDistTests(UnpackedMixin, SDistTests):
|
||||
def _getLoadFilename(self):
|
||||
import os
|
||||
return os.path.join(self._getTopDirectory(), 'setup.py')
|
||||
Reference in New Issue
Block a user