From cdc90d7b2baf7b79342ecdf5c2ffa6fe4166dfd4 Mon Sep 17 00:00:00 2001 From: Huong Nguyen Date: Tue, 1 Oct 2024 15:31:08 +0100 Subject: [PATCH] add test_build and remove test_import Signed-off-by: Huong Nguyen --- tests/test_build.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 tests/test_build.py diff --git a/tests/test_build.py b/tests/test_build.py new file mode 100644 index 0000000..ac7d1ee --- /dev/null +++ b/tests/test_build.py @@ -0,0 +1,40 @@ +import os +import glob +import zipfile +import subprocess +import pytest +import shutil # Import shutil for high-level file operations + +# Define a fixture for setup and cleanup +@pytest.fixture +def build_and_cleanup(): + # Setup can be done here if needed + yield # This yields control to the test function + # Cleanup: Remove the wheel_contents directory after the test + shutil.rmtree('wheel_contents', ignore_errors=True) + +# Use the fixture in your test by including it as a parameter +def test_built_wheel_contains_expected_files(build_and_cleanup): + # Build the project + subprocess.run(['uv', 'build'], check=True) + + # Find the wheel file + wheel_files = glob.glob('dist/*.whl') + assert wheel_files, "No wheel files found in dist/" + wheel_file = wheel_files[0] + + # Unzip the wheel file using Python's zipfile module + with zipfile.ZipFile(wheel_file, 'r') as zip_ref: + zip_ref.extractall('wheel_contents') + + # Check for the existence of CSS files in /assets/ folder + css_files = glob.glob('wheel_contents/kedro_sphinx_theme/assets/styles/*.css') + assert css_files, "CSS files missing in /assets/" + + # Check for the existence of HTML files and theme.conf in /theme/kedro-sphinx-theme/ folder + html_files = glob.glob('wheel_contents/kedro_sphinx_theme/theme/kedro-sphinx-theme/*.html') + theme_conf_file = glob.glob('wheel_contents/kedro_sphinx_theme/theme/kedro-sphinx-theme/theme.conf') + + # Assert that HTML files and theme.conf exist + assert html_files, "HTML files missing in /theme/kedro-sphinx-theme/" + assert theme_conf_file, "theme.conf missing in /theme/kedro-sphinx-theme/" \ No newline at end of file