Add Windows CI smoke test (import all artifact modules)#837
Merged
Conversation
ALEAPP CI was lint-only (ubuntu); nothing exercised the code on Windows, where extracted file paths use backslash separators (scripts/search_files.py rewrites them). Adds a windows-latest job that imports every artifact module by file path (mirroring plugin_loader, so dotted filenames like kleinanzeigen.de.py load) and runs PluginLoader, failing on any import error. Catches OS-specific import/module-level path breakage automatically per PR. Does not validate parsing correctness (that needs sample data / a real run). The test is a plain unittest, runnable on any platform.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
CI was lint-only on ubuntu — nothing ran the code on Windows. On Windows, extracted paths use backslash separators (
scripts/search_files.py:66rewrites/→\), so an artifact mishandling separators could break on Windows while passing all current checks.What
admin/test/scripts/test_artifact_imports.py— imports everyscripts/artifacts/*.pyby file path (mirroringplugin_loader.py, so dotted filenames likekleinanzeigen.de.pyload), and runsPluginLoader. Fails on any import error. Plainunittest, runs on any platform (311 modules import clean locally)..github/workflows/windows_smoke.yml— runs it onwindows-latestfor every PR touching.py/requirements.txt, plus manual dispatch.Scope / limits
Catches import-time / module-level Windows breakage (the most common kind) automatically. It does not validate parsing correctness — that still needs a real run against sample data on Windows. Think of it as a tripwire, not full coverage.