File: test_hook_utilities.py

package info (click to toggle)
pyinstaller 6.18.0%2Bds-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 11,824 kB
  • sloc: python: 41,828; ansic: 12,123; makefile: 171; sh: 131; xml: 19
file content (32 lines) | stat: -rw-r--r-- 1,394 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# -----------------------------------------------------------------------------
# Copyright (c) 2005-2023, PyInstaller Development Team.
#
# Distributed under the terms of the GNU General Public License (version 2
# or later) with exception for distributing the bootloader.
#
# The full license is in the file COPYING.txt, distributed with this software.
#
# SPDX-License-Identifier: (GPL-2.0-or-later WITH Bootloader-exception)
# -----------------------------------------------------------------------------
import subprocess


def test_collect_entry_point(pyi_builder_spec, script_dir, tmp_path):
    """
    Test PyInstaller.utils.hooks.collect_entry_point().

    On adding ``collect_entry_point('pytest11')`` to the spec file, the list of modules exporting the 'pytest11' entry
    point should be same after freezing.
    """
    from PyInstaller.compat import importlib_metadata
    plugins = sorted(i.module for i in importlib_metadata.entry_points(group="pytest11"))

    assert len(plugins), "The pytest11 entry point appears to have moved."

    pyi_builder_spec.test_spec('list_pytest11_entry_point.spec')
    exe = tmp_path / "dist" / "list_pytest11_entry_point" / "list_pytest11_entry_point"

    p = subprocess.run([str(exe)], stdout=subprocess.PIPE, check=True, encoding="utf-8")
    collected_plugins = p.stdout.strip("\n").split("\n")

    assert collected_plugins == plugins