René's URL Explorer Experiment


Title: Refactor Tests by diraol · Pull Request #1191 · python-mode/python-mode · GitHub

Open Graph Title: Refactor Tests by diraol · Pull Request #1191 · python-mode/python-mode

X Title: Refactor Tests by diraol · Pull Request #1191 · python-mode/python-mode

Description: Complete Test Migration and Infrastructure Improvements Overview This PR completes the migration from bash-based tests to the Vader test framework, fixes all failing tests, simplifies the test runner infrastructure, implements code coverage infrastructure for CI/CD, and fixes critical JSON generation bugs. All 8 Vader test suites are now passing (100% success rate). 🎉 Major Achievement: All Tests Passing Test Results: ✅ autopep8.vader - 8/8 tests passing (was 1/8) ✅ commands.vader - 7/7 tests passing (was 6/7) ✅ folding.vader - All tests passing ✅ lint.vader - All tests passing ✅ motion.vader - All tests passing ✅ rope.vader - All tests passing ✅ simple.vader - All tests passing ✅ textobjects.vader - All tests passing Total: 8/8 test suites passing (100% success rate) Changes Summary 🔧 Test Fixes (Track 3) Root Cause Identified: Python module imports were failing because Python paths weren't initialized before autoload files imported Python modules. Solutions Implemented: Fixed autoload/pymode/lint.vim: Added Python path initialization (pymode#init_python()) before loading autoload files that import Python modules Ensured pymode#init_python() is called to add submodules to sys.path Used robust plugin root detection with fallback to runtimepath Fixed autoload/pymode/motion.vim: Made pymode import lazy (moved from top-level to inside pymode#motion#init() function) Ensures Python paths are initialized before imports happen Impact: Fixed all autopep8.vader tests (8/8 now passing) Fixed PymodeLintAuto command test in commands.vader (7/7 now passing) Eliminated "Unknown function: pymode#lint#auto" errors Eliminated "ModuleNotFoundError: No module named 'pymode'" errors 🐛 Critical Bug Fixes Fixed Malformed JSON Generation: Problem: The JSON generation in run_vader_tests_direct.sh was creating invalid JSON arrays without proper comma separation Solution: Added format_json_array() function that properly formats arrays with commas Added JSON escaping for special characters (quotes, backslashes, control characters) Added JSON validation after generation using jq or python3 -m json.tool Impact: Prevents CI/CD failures with exit code 5, ensures valid JSON artifacts Improved Error Handling in CI/CD: Added nullglob to handle empty glob patterns gracefully Initialized all variables with defaults to prevent unset variable errors Added better error handling for JSON parsing with fallbacks Added debug information when no artifacts are processed Fixed exit code 5 error in CI/CD workflow 🧹 Test Runner Infrastructure Simplification Renamed Files: scripts/user/run-vader-tests.sh → scripts/user/run_tests.sh scripts/cicd/dual_test_runner.py → Removed (consolidated functionality) More concise naming Updated all references in documentation Benefits: Cleaner, more maintainable codebase Removed 185 lines of legacy test runner code Simplified CI/CD workflow (no dual test execution) Better alignment with current test infrastructure 🧪 Test Migration: Bash to Vader Format Enhanced Vader Test Suites: autopep8.vader: Added comprehensive test scenario from test_autopep8.sh that loads sample.py file and verifies autopep8 detects >5 errors textobjects.vader: Added test scenario from test_textobject.sh that loads sample.py and verifies text object mappings produce expected output Removed Migrated Bash Tests: Deleted tests/test_bash/test_autopep8.sh (migrated to Vader autopep8.vader) Deleted tests/test_bash/test_folding.sh (migrated to Vader folding.vader) Deleted tests/test_bash/test_textobject.sh (replaced by Vader test) Updated tests/test.sh to remove references to deleted bash tests 📊 Code Coverage Infrastructure Coverage Tool Integration: Added coverage package installation to Dockerfile Implemented coverage.xml generation in test runner for CI/CD integration Coverage.xml is automatically created in project root for codecov upload Updated .gitignore to exclude coverage-related files (coverage.xml, .coverage, .coverage.*, etc.) 🔄 CI/CD Improvements New Features: Added PR comment summary generation (scripts/cicd/generate_pr_summary.sh) Automatically generates markdown summary of test results Posts to PR comments with test status for each Python version Includes failed test details and overall statistics Added direct test execution for CI (scripts/cicd/run_vader_tests_direct.sh) Runs Vader tests without Docker in GitHub Actions Generates JSON test results for artifact upload Validates JSON syntax after generation Workflow Updates: Simplified .github/workflows/test.yml to use direct test execution Removed legacy test_pymode.yml workflow Added artifact upload for test results and logs Added codecov integration for coverage reporting 🧹 Documentation Cleanup Updated Documentation: TEST_FAILURES.md: Updated to reflect all tests passing, documented fixes applied scripts/README.md: Updated references to renamed test runner files README-Docker.md: Updated Docker usage instructions Removed Deprecated Files: Deleted migration-reports/ directory (Phase 1-5 migration reports) Removed MIGRATION_STATUS.md (consolidated into main documentation) Removed TEST_MIGRATION_PHASE_5.md (outdated migration report) Removed FIXES_APPLIED.md (fixes already implemented) Removed TEST_MIGRATION_PLAN.md (plan completed) Removed test_runner_debug.sh (temporary testing script) 🔧 Previous Fixes (Included from Previous Commits) Configuration Syntax Errors ✅ FIXED: Problem: tests/utils/vimrc.ci had invalid Vimscript dictionary syntax causing parsing errors Solution: Reverted from call calls back to direct let statements Impact: Resolved E15: Invalid expression and E10: \ should be followed by /, ? or & errors Inconsistent Test Configurations ✅ FIXED: Problem: Vader tests were using dynamically generated minimal vimrc instead of main configuration files Solution: Modified test runner to use tests/utils/vimrc.ci (which sources tests/utils/vimrc) Impact: Ensures consistent configuration between legacy and Vader tests Missing Vader Runtime Path ✅ FIXED: Problem: Main vimrc.ci didn't include Vader in the runtime path Solution: Added Vader runtime path to vimrc.ci Impact: Allows Vader tests to run properly within unified configuration Python-mode ftplugin Not Loading ✅ FIXED: Problem: :PymodeLintAuto command wasn't available because ftplugin wasn't being loaded for test buffers Solution: Modified test runner to explicitly load ftplugin with filetype plugin on Impact: Ensures all python-mode commands are available during Vader tests Rope Configuration for Testing ✅ FIXED: Problem: Rope regeneration on write could interfere with tests Solution: Disabled g:pymode_rope_regenerate_on_write in test configuration Impact: Prevents automatic rope operations that could cause test instability Text Object Assertions ✅ FIXED: Problem: Text object tests were failing due to assertion syntax issues Solution: Fixed Vader assertion syntax in textobjects.vader Impact: All text object tests now passing Docker Cleanup ✅ FIXED: Problem: Docker containers created root-owned files causing permission issues Solution: Added cleanup script to remove root-owned files after Docker test execution Impact: Prevents permission errors in CI/CD and local development Testing ✅ All 8 Vader test suites passing (100% success rate) ✅ Docker build succeeds with coverage tool installed ✅ Coverage.xml is generated correctly for CI/CD ✅ JSON test results are valid and parseable ✅ CI/CD workflows updated and working ✅ PR summary generation working correctly ✅ Test infrastructure maintains backward compatibility Impact Benefits: 100% Test Success Rate: All Vader tests now passing Improved Test Maintainability: Vader tests are more readable and maintainable than bash scripts Better CI Integration: Code coverage reporting now integrated with codecov Robust Error Handling: Fixed JSON generation bugs and improved error handling Cleaner Codebase: Removed deprecated documentation and simplified test runner infrastructure Unified Configuration: Consistent test environment across all test suites Simplified Infrastructure: Removed legacy test support, cleaner codebase Better Visibility: PR comments automatically show test results Breaking Changes: None. All changes maintain backward compatibility. Files Changed Modified: .github/workflows/test.yml - Updated to use direct test execution, added PR summary .gitignore - Added coverage-related files TEST_FAILURES.md - Updated to reflect all tests passing autoload/pymode/lint.vim - Made imports lazy autoload/pymode/motion.vim - Added Python path initialization scripts/README.md - Updated references to renamed files Dockerfile - Added coverage tool, minor cleanup README-Docker.md - Updated Docker usage instructions scripts/cicd/run_vader_tests_direct.sh - Fixed JSON generation, added validation scripts/cicd/generate_pr_summary.sh - Improved error handling, added debug info Added: scripts/cicd/generate_pr_summary.sh - PR comment summary generator scripts/cicd/run_vader_tests_direct.sh - Direct CI test runner scripts/user/run_tests.sh - Unified test runner (renamed from run-vader-tests.sh) scripts/user/test-all-python-versions.sh - Multi-version test runner scripts/user/run-tests-docker.sh - Docker-based test runner tests/utils/vimrc.ci - CI-specific Vim configuration Deleted: migration-reports/ directory scripts/cicd/dual_test_runner.py scripts/user/run-vader-tests.sh (renamed to run_tests.sh) scripts/cicd/generate_test_report.py scripts/cicd/check_python_docker_image.sh tests/test_bash/test_autopep8.sh tests/test_bash/test_folding.sh tests/test_bash/test_textobject.sh .github/workflows/test_pymode.yml Next Steps The test infrastructure is now complete and all tests are passing. The setup is ready for: ✅ Full CI/CD integration with coverage reporting ✅ Automated PR comment summaries ✅ Enhanced test coverage metrics ✅ Production deployment

Open Graph Description: Complete Test Migration and Infrastructure Improvements Overview This PR completes the migration from bash-based tests to the Vader test framework, fixes all failing tests, simplifies the test runn...

X Description: Complete Test Migration and Infrastructure Improvements Overview This PR completes the migration from bash-based tests to the Vader test framework, fixes all failing tests, simplifies the test runn...

Opengraph URL: https://github.com/python-mode/python-mode/pull/1191

X: @github

direct link

Domain: patch-diff.githubusercontent.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:7d2a8af4-9a10-4dd4-5d7f-80b2587b6bc4
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idB680:3217AD:F09873:15214CE:69722E3D
html-safe-nonce8528da9089a760d697b58bb555d55adebfec8faa6d81a16276787cc1b3c88dce
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCNjgwOjMyMTdBRDpGMDk4NzM6MTUyMTRDRTo2OTcyMkUzRCIsInZpc2l0b3JfaWQiOiIzMjc0NDExOTc3OTQwODA3MjI5IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmac86c173078d098670ab7230c7bbf286e2572fddd6a9d4f53f4012c19ba6fd4383
hovercard-subject-tagpull_request:2720105341
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/python-mode/python-mode/pull/1191/files
twitter:imagehttps://avatars.githubusercontent.com/u/192702?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/192702?s=400&v=4
og:image:altComplete Test Migration and Infrastructure Improvements Overview This PR completes the migration from bash-based tests to the Vader test framework, fixes all failing tests, simplifies the test runn...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None2c16db4e575031f6e3be03e0437c1ab663e0b4643ba5cbbfba48c1e4fc056a11
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/python-mode/python-mode git https://github.com/python-mode/python-mode.git
octolytics-dimension-user_id13965098
octolytics-dimension-user_loginpython-mode
octolytics-dimension-repository_id2408911
octolytics-dimension-repository_nwopython-mode/python-mode
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id2408911
octolytics-dimension-repository_network_root_nwopython-mode/python-mode
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releasea12ab519e1537fa080535ea933f81d4fcef34da0
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#start-of-content
https://patch-diff.githubusercontent.com/
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython-mode%2Fpython-mode%2Fpull%2F1191%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython-mode%2Fpython-mode%2Fpull%2F1191%2Ffiles
Sign up https://patch-diff.githubusercontent.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=python-mode%2Fpython-mode
Reloadhttps://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files
Reloadhttps://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files
Reloadhttps://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files
python-mode https://patch-diff.githubusercontent.com/python-mode
python-modehttps://patch-diff.githubusercontent.com/python-mode/python-mode
Please reload this pagehttps://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2Fpython-mode%2Fpython-mode
Fork 768 https://patch-diff.githubusercontent.com/login?return_to=%2Fpython-mode%2Fpython-mode
Star 5.5k https://patch-diff.githubusercontent.com/login?return_to=%2Fpython-mode%2Fpython-mode
Code https://patch-diff.githubusercontent.com/python-mode/python-mode
Issues 37 https://patch-diff.githubusercontent.com/python-mode/python-mode/issues
Pull requests 1 https://patch-diff.githubusercontent.com/python-mode/python-mode/pulls
Actions https://patch-diff.githubusercontent.com/python-mode/python-mode/actions
Projects 0 https://patch-diff.githubusercontent.com/python-mode/python-mode/projects
Wiki https://patch-diff.githubusercontent.com/python-mode/python-mode/wiki
Security Uh oh! There was an error while loading. Please reload this page. https://patch-diff.githubusercontent.com/python-mode/python-mode/security
Please reload this pagehttps://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files
Insights https://patch-diff.githubusercontent.com/python-mode/python-mode/pulse
Code https://patch-diff.githubusercontent.com/python-mode/python-mode
Issues https://patch-diff.githubusercontent.com/python-mode/python-mode/issues
Pull requests https://patch-diff.githubusercontent.com/python-mode/python-mode/pulls
Actions https://patch-diff.githubusercontent.com/python-mode/python-mode/actions
Projects https://patch-diff.githubusercontent.com/python-mode/python-mode/projects
Wiki https://patch-diff.githubusercontent.com/python-mode/python-mode/wiki
Security https://patch-diff.githubusercontent.com/python-mode/python-mode/security
Insights https://patch-diff.githubusercontent.com/python-mode/python-mode/pulse
Sign up for GitHub https://patch-diff.githubusercontent.com/signup?return_to=%2Fpython-mode%2Fpython-mode%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://patch-diff.githubusercontent.com/login?return_to=%2Fpython-mode%2Fpython-mode%2Fissues%2Fnew%2Fchoose
diraolhttps://patch-diff.githubusercontent.com/diraol
develophttps://patch-diff.githubusercontent.com/python-mode/python-mode/tree/develop
dro/refactor_testshttps://patch-diff.githubusercontent.com/python-mode/python-mode/tree/dro/refactor_tests
Conversation 1 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191
Commits 30 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits
Checks 5 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/checks
Files changed https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files
Please reload this pagehttps://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files
Refactor Tests https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#top
Show all changes 30 commits https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files
d6ac070 Add an Improvement plan for tests diraol Aug 2, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/d6ac0706f9384e168aa15c8c87d6c3c0a22b2604
b3909d7 [Preparation] Phase 1 Enhanced Docker Foundation! 🎉 diraol Aug 2, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/b3909d741a7424857b1e46a2f8dbb48af1bd59e9
ad9fa99 [Preparation ]Phase 2: Modern Test Framework Integration - COMPLETED ✅ diraol Aug 2, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/ad9fa992ffa2e430e61d753f695125caca2aa9eb
0692979 [Preparation] Phase 3 Implementation Summary: Advanced Safety Measures diraol Aug 2, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/069297952219c8b6458b0270a0537d526f3b61c1
ee74bd6 [Preparation] Phase 4 Implementation Summary: CI/CD Integration diraol Aug 2, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/ee74bd611f292f9d648dba7d924a98f0881a4943
be1bda5 [Preparation] Phase 5 Implementation Summary: Performance and Monitoring diraol Aug 2, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/be1bda5f91a260f926011d89e397caf978740295
9c46d1a [Migration] Phase 1: Parallel Implementation diraol Aug 3, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/9c46d1aca0add7109de73d18408777407ff00413
7d6801e Phase 2: Gradual Migration - COMPLETED WITH INSIGHTS diraol Aug 3, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/7d6801e2f69b021c167607406cb0e21282b92757
83e9fd0 Improving tests - Phase3 Complete diraol Aug 4, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/83e9fd09d3e8bcecd297576e447e9c5950fbbea4
bb87c64 🎯 PHASE 4: COMPLETE MIGRATION - COMPLETION ACHIEVED! ✨ diraol Aug 5, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/bb87c64761d47b44af5e7a33626b3d55871484f2
ec72d51 Reduce overengineering diraol Aug 5, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/ec72d5120fe35b90c910420a26caadb0d573fc20
967ad2a Remove reference to Phase2 diraol Aug 5, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/967ad2aa951d5a883b2d90439d441b91919db679
0c3f994 Fix CICD diraol Aug 5, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/0c3f99464ff79f67650d9c993dbd3bc79026fa58
4641db5 Trying to fix CI diraol Aug 5, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/4641db53ecef24d6b33333af31d67bd318d8d008
3c44bd5 Using default python image as base diraol Aug 7, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/3c44bd5faeb571a734becdb36083a6a2275bbf37
115fdf2 Remove references to PYTHON_VERSION_SHORT diraol Aug 7, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/115fdf2b26962451ea2bb18aeb262d1850035c0c
5bad803 Simplifying the test structure diraol Aug 7, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/5bad8033733bde4dad21642f0cd9551962f9b0a0
1c04495 Complete test migration and infrastructure improvements diraol Aug 18, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/1c044959d183338912ede59425aa5591f0ff67c9
48c868a Fix Vader test runner: Install Vader.vim in Dockerfile and improve te… diraol Nov 14, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/48c868a0fbef82bbc7588377de92aa936796b490
e38c401 Document known test failures and investigation steps diraol Nov 14, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/e38c401c6745cc779749c1dd67fa45fef9fbadf6
62afecd Fix all Vader tests and simplify test runner infrastructure diraol Nov 14, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/62afecd3208dc0a6797dca245a74c944fd778a2c
224faf0 Add test result artifacts to .gitignore diraol Nov 14, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/224faf066eba63c04fdcd4a52e48cfb5e0965fa4
61ef192 Remove legacy bash tests and update references diraol Nov 14, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/61ef192fac71dd2bfca96eaca1accddaa54efe10
a402982 Simplify test infrastructure: separate local Docker and CI direct exe… diraol Nov 14, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/a40298244ae3fa4f9ceaaf47a6dd9050be7719fe
9273aa2 Fix rope test: ensure rope config variables exist in CI vimrc diraol Nov 14, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/9273aa2f06930fe2c027eb8be9f1ce793b3efeb2
6ef5818 Fix text object assertions in tests diraol Nov 14, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/6ef5818d271ca5f3c9d19be2575f3c5c75824fdf
7a8fa88 Remove legacy test_pymode.yml workflow diraol Nov 14, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/7a8fa88ff789f8e655670c998f32c975a39da6c4
1c878d1 Add cleanup for root-owned files created by Docker containers diraol Nov 14, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/1c878d1f731603c54fe3db71231d1da9f8c928c7
31cbe0c Add PR comment summary for CI/CD test results diraol Nov 14, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/31cbe0ce86685d14906df3c117ffb3e5dd237816
ec59683 Fix JSON generation and improve error handling in CI/CD scripts diraol Nov 14, 2025 https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/commits/ec59683762a13bf995b86b7cd52c774697e9c686
Clear filters https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files
Please reload this pagehttps://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files
Please reload this pagehttps://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files
.dockerignore https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-2f754321d62f08ba8392b9b168b83e24ea2852bb5d815d63e767f6c3d23c6ac5
build_base_image.yml https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-bd76db06b9310761eab5841871ef0b723db0cd8e3be8c3a66e6f67af69410565
test.yml https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-faff1af3d8ff408964a57b2e475f69a6b7c7b71c9978cccc8f471798caac2c88
test_pymode.yml https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-b4e454386c37f94221877ddb4701676df147a9cdfd97c753e581bf16158f1f86
.gitignore https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-bc37d034bad564583790a46f19d807abfe519c5671395fd494d8cce506c42947
Dockerfile https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557
Dockerfile.base https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-8f5e5cdf9d8c402d512a6f0cc8b414617cd93c533d36b90ea46def15909f28af
README-Docker.md https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-9fd61d24482efe68c22d8d41e2a1dcc440f39195aa56e7a050f2abe598179efd
TEST_FAILURES.md https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-86fb0a807ec7cfe21cf6d3014d90f9bd99d52bf3ac047774a6252d923a6c877a
lint.vim https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-5cd7346d1f4abab161732463bfbd8d7761efa7c153e4b44cb49ddc368dece6f6
motion.vim https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-9b07551a97607d89bbbaeddf01ec16cd4c0d6a5cdd0539d8a0930c36f7fc2b2e
rope.vim https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-59b2bd85f72885367df45430319dd48360fa8363a9c37905f6a87736c56ab68e
pymode.txt https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-3585c01cd4fae5a6ed8d84c8be014721f76800019ffaa1b6db6753411bf1c4f9
docker-compose.yml https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-e45e45baeda1c1e73482975a664062aa56f20c03dd9d64a827aba57775bed0d3
__init__.py https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-10f7f7f8e7985f1287d8c631c87bf0f1b9263b59668c8dede935642a549ef781
readme.md https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-5a831ea67cf5cf8703b0de46901ab25bd191f56b320053be9332d9a3b0d01d15
README.md https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-25b96aa16f8b9f68c692d0db061713707e9cfc67b296e0ea30908928fb3ffcd6
generate_pr_summary.sh https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-63f2cf3817835026a9ade48ad9cd22e023b4f47dcabf8e418683a7a586348161
run_vader_tests_direct.sh https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-19b725bb6fcd2c647f2b68605efa84135d99c56ca743d0bee5ee43a53d4d986f
run-tests-docker.sh https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-979b3c7b3fb438bf720e0cc42fae8958d4049feeb30a0f6d9a07be0a0be55c47
test-all-python-versions.sh https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-0c3141744b0b0b7e2cf38d8a292ffa549ecf51867e33fa2709ff66fc3fb7171e
run-tests-docker.sh https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-3ec9e576df29cbf72603332e12a55e009530e500d46ccd484a81a5e349e3fed2
run_tests.sh https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-be6aad87880b602d53dff3874b17b810f6aa02db61fc1f2d25476c53777be22b
test-all-python-versions.sh https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-c157aae24b937e0aef30b545914b8f56ef9c04bfb474399d350d0abecaf83378
test.sh https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-dad7b84674fccc140b0fb2f17af742872a2f5cda5ddd36af501f39b404baf0cb
test_autocommands.sh https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-bb54f8f9c1d8c33ef65b680ae195474c48d6e12b03f7282b12f74eadffa4fc0c
test_autopep8.sh https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-00e0a71db911cc85ca9f6be405f30fad62661be14fb060e07293ca13a936e076
test_folding.sh https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-f23eb5ba686ca4c13318ac914368fd181db3feeb510e766dc8bf56153ae531a0
test_pymodelint.sh https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-7349bb248c6a6cd9f1e4afdd41c48d98cfb418d2aef04f05862bd934b3b01b16
test_textobject.sh https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-c8a1e22a676d4890ee8bbe8cc7f7d385cce87839b7ed344b892f4da8dbebaf3a
pymodelint.vim https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-31ee949fc331d33de27bb2409015b0209e36aed639f5b2c03fa73b651391cf32
pymoderun.vim https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-4654d50827772f98626de8192110cb611d12a8cf3fd867551e56c68f1163c6e8
textobject.vim https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-cd0470f42069334aa92a0c56c1ba27b3eab71bba8ce45cb20fd60b4cd250966f
textobject_fixed.vim https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-5716005ac4610d4341e7694acea6c5686ffd9d793aaab7fb206b3839d2de4387
pymoderc https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-c315946a078b605029da4d8c1cd712e56b693cbea018e6bc76dcb61341663152
vimrc https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-514e39f34d2691076fe2140c872734c0b048e7b4f5b3d12d05d41a13a3d82fc9
vimrc.ci https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-72426153b27660f69eec0c454025ca734e41cb3debb2066ffbc1eabedfb916f8
autopep8.vader https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-4c145be58fd613785d51f8c36a6e9efc40d44f87f05fd3041c263c97726f8aac
commands.vader https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-3f548fb963e8e1fb3e9bc16f7d854fae2149ae1734388a352a0c5a4462c3f613
folding.vader https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-0db3fbef8bcf2f2980bfc3653ed3ac9d70409de992d57af96efd0359a5ae3332
lint.vader https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-d7fc0ab67690db0cfc9f75d0c163371cc4a685a7c7d82336bcca11b86bc871f0
motion.vader https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-871a11a5249724034415f25153b55b2b69e6d7e108add2edac7714e523285213
rope.vader https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-2af147e454e5ef93a967a200bd0453c03648664af7676e62d1820fa6e16f154c
setup.vim https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-4e932dc50db2c7cf57253d80c546c0f75d662a2302510d696da92b45a4435f39
simple.vader https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-9a0911186aa38532789e848e525f1bc6b7f72c13877014ae4b9b4917ab9bcafa
textobjects.vader https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-308eb1b01dd6246408382037f0ee63c00b9f02184948e03160b70da88ffa9623
.dockerignorehttps://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-2f754321d62f08ba8392b9b168b83e24ea2852bb5d815d63e767f6c3d23c6ac5
View file https://patch-diff.githubusercontent.com/python-mode/python-mode/blob/ec59683762a13bf995b86b7cd52c774697e9c686/.dockerignore
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/{{ revealButtonHref }}
.github/workflows/build_base_image.ymlhttps://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-bd76db06b9310761eab5841871ef0b723db0cd8e3be8c3a66e6f67af69410565
View file https://patch-diff.githubusercontent.com/python-mode/python-mode/blob/2db3b9ea1051b00ca32f12310d500a55b924c7f2/.github/workflows/build_base_image.yml
Open in desktop https://desktop.github.com
Please reload this pagehttps://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files
.github/workflows/test.ymlhttps://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-faff1af3d8ff408964a57b2e475f69a6b7c7b71c9978cccc8f471798caac2c88
View file https://patch-diff.githubusercontent.com/python-mode/python-mode/blob/ec59683762a13bf995b86b7cd52c774697e9c686/.github/workflows/test.yml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/{{ revealButtonHref }}
.github/workflows/test_pymode.ymlhttps://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-b4e454386c37f94221877ddb4701676df147a9cdfd97c753e581bf16158f1f86
View file https://patch-diff.githubusercontent.com/python-mode/python-mode/blob/2db3b9ea1051b00ca32f12310d500a55b924c7f2/.github/workflows/test_pymode.yml
Open in desktop https://desktop.github.com
Please reload this pagehttps://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files
.gitignorehttps://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-bc37d034bad564583790a46f19d807abfe519c5671395fd494d8cce506c42947
View file https://patch-diff.githubusercontent.com/python-mode/python-mode/blob/ec59683762a13bf995b86b7cd52c774697e9c686/.gitignore
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/{{ revealButtonHref }}
https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-bc37d034bad564583790a46f19d807abfe519c5671395fd494d8cce506c42947
Dockerfilehttps://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557
View file https://patch-diff.githubusercontent.com/python-mode/python-mode/blob/ec59683762a13bf995b86b7cd52c774697e9c686/Dockerfile
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/{{ revealButtonHref }}
https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557
https://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557
Please reload this pagehttps://patch-diff.githubusercontent.com/python-mode/python-mode/pull/1191/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.