Source code for tests.test_build

#! /usr/bin/env python
# -*- coding: utf-8 -*-

# Multicast PEP-517 Tests
# ..................................
# Copyright (c) 2025, Mr. Walls
# ..................................
# Licensed under MIT (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# ..........................................
# http://www.github.com/reactive-firewall/python-repo/LICENSE.md
# ..........................................
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

__module__ = """tests"""

try:
	try:
		import context
	except Exception as ImportErr:  # pragma: no branch
		ImportErr = None
		del ImportErr  # skipcq - cleanup any error leaks early
		from . import context
	if context.__name__ is None:
		raise ImportError("[CWE-758] Failed to import context") from None
	else:
		from context import sys
		from context import os
		from context import unittest
		from context import subprocess
		from context import BasicUsageTestSuite
except Exception as _cause:  # pragma: no branch
	raise ImportError("[CWE-758] Failed to import test context") from _cause


[docs] class TestPEP517Build(BasicUsageTestSuite): __module__ = """tests.test_build"""
[docs] def test_build_with_pep517(self): """ Test building the package using PEP 517 standards. This test verifies: 1. Clean build environment setup 2. Successful package build (both sdist and wheel) 3. Presence of expected distribution files References: - PEP 517: https://peps.python.org/pep-0517/ """ # Arguments need to clean build_arguments = [ str("{} -m coverage run").format(sys.executable), 'setup.py', 'clean', '--all' ] # Build the source distribution theBuildtxt = context.checkPythonCommand(build_arguments, stderr=subprocess.STDOUT) self.assertIn(str("running clean"), str(theBuildtxt)) # Arguments need to build build_arguments = [ str("{} -m coverage run").format(sys.executable), '-m', 'build', '--sdist', '--wheel' ] # Build the source distribution theBuildtxt = context.checkPythonCommand(build_arguments, stderr=subprocess.STDOUT) self.assertIn(str("running build"), str(theBuildtxt)) self.assertIn(str("""Successfully built"""), str(theBuildtxt)) # Verify that the dist directory contains the expected files dist_dir = os.path.join(os.getcwd(), 'dist') pkg_version = str(self._should_get_package_version_WHEN_valid()) dist_files = sorted(os.listdir(dist_dir), reverse=True) expected_files = [ f"multicast-{pkg_version}.tar.gz", f"multicast-{pkg_version}-py3-none-any.whl", ] for expected_file in expected_files: self.assertIn( expected_file, dist_files, f"Missing {expected_file} in dist directory. Looking for version {pkg_version}" )
# leave this part if __name__ == '__main__': unittest.main()