Beispiel #1
0
def generate_dist(dist_dir=None, script_name='setup.py'):

    if dist_dir:
        current_wd = os.getcwd()
        os.chdir(dist_dir)

    try:

        with tempfile.TemporaryDirectory(prefix='ap_dist') as tmp_dir,\
             StringIO() as pkg_info:

            with patch('sys.stdout', new_callable=StringIO) as mock_stdout:
                dist = run_setup(script_name, ['sdist', '-d', tmp_dir,
                                               'bdist_wheel', '-d', tmp_dir])

            local_locator = DirectoryLocator(tmp_dir)
            filenames = [Path(urlparse(uri).path)
                         for uri in local_locator.get_project(dist.metadata.name)['digests'].keys()]

            dist.metadata.write_pkg_file(pkg_info)
            pkg_info.seek(0)
            metadata = Metadata(fileobj=pkg_info)
            yield metadata, filenames
    finally:
        if dist_dir:
            os.chdir(current_wd)
Beispiel #2
0
    def test_dir_nonrecursive(self):
        d = os.path.join(HERE, "fake_archives")
        locator = DirectoryLocator(d, recursive=False)
        expected = os.path.join(HERE, "fake_archives", "subdir", "subsubdir", "Flask-0.9.tar.gz")

        def get_path(url):
            t = urlparse(url)
            return url2pathname(t.path)

        for name in ("flask", "Flask"):
            result = locator.get_project(name)
            self.assertEqual(result, {"urls": {}, "digests": {}})
        names = locator.get_distribution_names()
        expected = set(["coverage"])
        self.assertEqual(names, expected)
Beispiel #3
0
    def test_dir_nonrecursive(self):
        d = os.path.join(HERE, 'fake_archives')
        locator = DirectoryLocator(d, recursive=False)
        expected = os.path.join(HERE, 'fake_archives', 'subdir',
                                'subsubdir', 'Flask-0.9.tar.gz')
        def get_path(url):
            t = urlparse(url)
            return url2pathname(t.path)

        for name in ('flask', 'Flask'):
            result = locator.get_project(name)
            self.assertEqual(result, {})
        names = locator.get_distribution_names()
        expected = set(['coverage'])
        self.assertEqual(names, expected)
Beispiel #4
0
    def test_dir_nonrecursive(self):
        d = os.path.join(HERE, 'fake_archives')
        locator = DirectoryLocator(d, recursive=False)
        expected = os.path.join(HERE, 'fake_archives', 'subdir', 'subsubdir',
                                'Flask-0.9.tar.gz')

        def get_path(url):
            t = urlparse(url)
            return url2pathname(t.path)

        for name in ('flask', 'Flask'):
            result = locator.get_project(name)
            self.assertEqual(result, {'urls': {}, 'digests': {}})
        names = locator.get_distribution_names()
        expected = set(['coverage'])
        self.assertEqual(names, expected)
Beispiel #5
0
    def test_dir(self):
        d = os.path.join(HERE, "fake_archives")
        locator = DirectoryLocator(d)
        expected = os.path.join(HERE, "fake_archives", "subdir", "subsubdir", "Flask-0.9.tar.gz")

        def get_path(url):
            t = urlparse(url)
            return url2pathname(t.path)

        for name in ("flask", "Flask"):
            result = locator.get_project(name)
            self.assertIn("0.9", result)
            dist = result["0.9"]
            self.assertEqual(dist.name, "Flask")
            self.assertEqual(dist.version, "0.9")
            self.assertEqual(os.path.normcase(get_path(dist.source_url)), os.path.normcase(expected))
        names = locator.get_distribution_names()
        expected = set(["Flask", "python-gnupg", "coverage", "Django"])
        if sys.version_info[:2] == (2, 7):
            expected.add("config")
        self.assertEqual(names, expected)
Beispiel #6
0
    def test_dir(self):
        d = os.path.join(HERE, 'fake_archives')
        locator = DirectoryLocator(d)
        expected = os.path.join(HERE, 'fake_archives', 'subdir',
                                'subsubdir', 'Flask-0.9.tar.gz')
        def get_path(url):
            t = urlparse(url)
            return url2pathname(t.path)

        for name in ('flask', 'Flask'):
            result = locator.get_project(name)
            self.assertIn('0.9', result)
            dist = result['0.9']
            self.assertEqual(dist.name, 'Flask')
            self.assertEqual(dist.version, '0.9')
            self.assertEqual(os.path.normcase(get_path(dist.source_url)),
                             os.path.normcase(expected))
        names = locator.get_distribution_names()
        expected = set(['Flask', 'python-gnupg', 'coverage', 'Django'])
        if sys.version_info[:2] == (2, 7):
            expected.add('config')
        self.assertEqual(names, expected)
Beispiel #7
0
    def test_dir(self):
        d = os.path.join(HERE, 'fake_archives')
        locator = DirectoryLocator(d)
        expected = os.path.join(HERE, 'fake_archives', 'subdir', 'subsubdir',
                                'Flask-0.9.tar.gz')

        def get_path(url):
            t = urlparse(url)
            return url2pathname(t.path)

        for name in ('flask', 'Flask'):
            result = locator.get_project(name)
            self.assertIn('0.9', result)
            dist = result['0.9']
            self.assertEqual(dist.name, 'Flask')
            self.assertEqual(dist.version, '0.9')
            self.assertEqual(os.path.normcase(get_path(dist.source_url)),
                             os.path.normcase(expected))
        names = locator.get_distribution_names()
        expected = set(['Flask', 'python-gnupg', 'coverage', 'Django'])
        if sys.version_info[:2] == (2, 7):
            expected.add('config')
        self.assertEqual(names, expected)