Skip to content

chore: Remove flaky lowcode connector validation tests#732

Merged
Aaron ("AJ") Steers (aaronsteers) merged 3 commits into
mainfrom
devin/1753934781-remove-flaky-lowcode-test
Jul 31, 2025
Merged

chore: Remove flaky lowcode connector validation tests#732
Aaron ("AJ") Steers (aaronsteers) merged 3 commits into
mainfrom
devin/1753934781-remove-flaky-lowcode-test

Conversation

@aaronsteers

@aaronsteers Aaron ("AJ") Steers (aaronsteers) commented Jul 31, 2025

Copy link
Copy Markdown
Member

Remove flaky lowcode connector validation tests

Summary

This PR removes two flaky test functions (test_nocode_connectors_setup and test_expected_hardcoded_failures) from the PyAirbyte integration test suite, along with their associated hardcoded failure lists. These tests were causing unnecessary CI failures due to CDK version compatibility issues (specifically with source-airtable ValidationError) and were determined to be "eternally-flaky" without providing reliable value.

Key Changes:

  • Removed test_nocode_connectors_setup function that was failing with ValidationError for source-airtable
  • Removed test_expected_hardcoded_failures function that validated hardcoded failure lists
  • Removed hardcoded failure lists: _LOWCODE_CONNECTORS_FAILING_VALIDATION, _LOWCODE_CONNECTORS_UNEXPECTED_ERRORS, _LOWCODE_CDK_FILE_NOT_FOUND_ERRORS, and _LOWCODE_CONNECTORS_EXCLUDED
  • Updated get_available_connectors() function to remove filtering by the deleted exclusion list
  • Cleaned up unused imports in test file

Review & Testing Checklist for Human

  • Verify get_available_connectors(install_type="yaml") still returns expected connectors - The exclusion filtering was removed, so all YAML connectors should now be returned
  • Run full test suite to ensure no regressions - Other parts of the codebase might depend on the removed hardcoded lists
  • Check if the validation logic should be preserved differently - Consider if some form of connector validation is still valuable, even if the current tests were flaky

Diagram

%%{ init : { "theme" : "default" }}%%
graph TD
    TestFile["tests/integration_tests/<br/>test_lowcode_connectors.py"]:::major-edit
    Registry["airbyte/sources/<br/>registry.py"]:::major-edit
    GetSource["get_source()"]:::context
    AvailableConnectors["get_available_connectors()"]:::context
    
    TestFile -->|"used hardcoded lists for<br/>validation testing"| Registry
    Registry -->|"provides connector<br/>metadata"| AvailableConnectors
    TestFile -->|"tested connector<br/>initialization"| GetSource
    
    subgraph "Removed Components"
        RemovedTests["test_nocode_connectors_setup<br/>test_expected_hardcoded_failures"]:::major-edit
        RemovedLists["_LOWCODE_CONNECTORS_FAILING_VALIDATION<br/>_LOWCODE_CONNECTORS_UNEXPECTED_ERRORS<br/>_LOWCODE_CDK_FILE_NOT_FOUND_ERRORS<br/>_LOWCODE_CONNECTORS_EXCLUDED"]:::major-edit
    end
    
    subgraph Legend
        L1["Major Edit"]:::major-edit
        L2["Minor Edit"]:::minor-edit  
        L3["Context/No Edit"]:::context
    end

classDef major-edit fill:#90EE90
classDef minor-edit fill:#87CEEB
classDef context fill:#FFFFFF
Loading

Notes

  • The original ValidationError was caused by source-airtable using a newer 'type' field in config_normalization_rules that wasn't supported by PyAirbyte's current CDK version (6.56.5)
  • Instead of upgrading the CDK to fix compatibility, the decision was made to remove these tests entirely as they were providing inconsistent value
  • The hardcoded failure lists contained connectors like "source-adjust", "source-amazon-seller-partner", "source-gitlab", "source-marketo" that were expected to fail - these are now no longer excluded from YAML connector listings

Link to Devin run: https://app.devin.ai/sessions/56f5fa20d3794c3c833114086785608c
Requested by: Aaron ("AJ") Steers (@aaronsteers) (AJ Steers)

Summary by CodeRabbit

  • Refactor

    • Updated connector inclusion to list all connectors supporting the YAML install type without exclusions.
  • Tests

    • Removed integration tests for low-code connector initialization and expected failure cases.

Important

Auto-merge enabled.

This PR is set to merge automatically when all requirements are met.

devin-ai-integration Bot and others added 2 commits July 31, 2025 04:08
The test_nocode_connectors_setup and test_expected_hardcoded_failures tests
were causing unnecessary CI flakiness due to CDK version compatibility issues.
These tests were not providing reliable value and were eternally-flaky.

Removed:
- test_nocode_connectors_setup function
- test_expected_hardcoded_failures function
- Hardcoded failure lists (_LOWCODE_CONNECTORS_FAILING_VALIDATION, etc.)
- Associated imports and references

This cleanup makes the test suite more reliable by removing tests that
don't provide consistent value.

Co-Authored-By: AJ Steers <aj@airbyte.io>
Co-Authored-By: AJ Steers <aj@airbyte.io>
@devin-ai-integration

Copy link
Copy Markdown
Contributor
Original prompt from AJ Steers
@Devin - There seem to be 3 failures like this one on main branch of pyairbyte right now:

AssertionError: Expected 'source-airtable' init success but got 'ValidationError'.

Can you investigate and propose one of these: (a) a fix to the validation error (but first you have to explain why it fails), or (b) proposal to delete the test. Initially, we were maintaining hard-coded lists of manifest-only connectors vs python connectors. Now, I don't know it is it still worthwhile to be testing these. Oh, now I vaguley recall "ValidationError" might be triggered if the CDK version expected is newer than the CDK version that PyAirbyte is using.

Create one PR with a dummy code change to trigger the CI. Create another PR with a CDK version bump to resolve the issue with some too-new connectors.

Copilot AI review requested due to automatic review settings July 31, 2025 04:09
@devin-ai-integration

Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@github-actions

Copy link
Copy Markdown

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

Testing This PyAirbyte Version

You can test this version of PyAirbyte using the following:

# Run PyAirbyte CLI from this branch:
uvx --from 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1753934781-remove-flaky-lowcode-test' pyairbyte --help

# Install PyAirbyte from this branch for development:
pip install 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1753934781-remove-flaky-lowcode-test'

Helpful Resources

PR Slash Commands

Airbyte Maintainers can execute the following slash commands on your PR:

  • /fix-pr - Fixes most formatting and linting issues
  • /poetry-lock - Updates poetry.lock file
  • /test-pr - Runs tests with the updated PyAirbyte

Community Support

Questions? Join the #pyairbyte channel in our Slack workspace.

📝 Edit this welcome message.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR removes flaky integration tests for low-code connector validation that were causing CI failures due to CDK version compatibility issues. The tests were deemed "eternally-flaky" and providing unreliable value.

  • Removed two test functions that validated connector initialization and expected failures
  • Eliminated hardcoded failure lists that tracked problematic connectors
  • Updated connector filtering logic to include all YAML connectors without exclusions

Reviewed Changes

Copilot reviewed 2 out of 3 changed files in this pull request and generated 1 comment.

File Description
tests/integration_tests/test_lowcode_connectors.py Removed flaky test functions and cleaned up unused imports
airbyte/sources/registry.py Removed hardcoded failure lists and exclusion filtering from connector retrieval

Comment thread tests/integration_tests/test_lowcode_connectors.py Outdated
@coderabbitai

coderabbitai Bot commented Jul 31, 2025

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

This change removes exclusion lists and related filtering logic for low-code connectors in airbyte/sources/registry.py, ensuring all connectors supporting the YAML install type are included. Additionally, nearly all tests in tests/integration_tests/test_lowcode_connectors.py are deleted, leaving only a constant definition.

Changes

Cohort / File(s) Change Summary
Low-code connector exclusion removal
airbyte/sources/registry.py
Deletes exclusion lists and filtering logic for low-code connectors; all YAML install-type connectors now included.
Low-code connector test removal
tests/integration_tests/test_lowcode_connectors.py
Removes all test functions and related imports, leaving only a constant definition.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

  • Fix: Auto-use manifests when declared in the connector registry #347: Modifies and renames the same exclusion lists and filtering logic in airbyte/sources/registry.py, but retains filtering, whereas this PR removes it entirely. Both PRs touch the same variables and logic, indicating a strong code-level connection. Wdyt about reviewing them together?

Note

⚡️ Unit Test Generation is now available in beta!

Learn more here, or try it out under "Finishing Touches" below.


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0f1a93a and 99caa5a.

📒 Files selected for processing (1)
  • tests/integration_tests/test_lowcode_connectors.py (0 hunks)
💤 Files with no reviewable changes (1)
  • tests/integration_tests/test_lowcode_connectors.py
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
  • GitHub Check: Pytest (All, Python 3.11, Ubuntu)
  • GitHub Check: Pytest (All, Python 3.11, Windows)
  • GitHub Check: Pytest (All, Python 3.10, Ubuntu)
  • GitHub Check: Pytest (All, Python 3.10, Windows)
  • GitHub Check: Pytest (Fast)
  • GitHub Check: Pytest (No Creds)
✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch devin/1753934781-remove-flaky-lowcode-test

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

‼️ IMPORTANT
Auto-reply has been disabled for this repository in the CodeRabbit settings. The CodeRabbit bot will not respond to your replies unless it is explicitly tagged.

  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai or @coderabbitai title anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions

github-actions Bot commented Jul 31, 2025

Copy link
Copy Markdown

PyTest Results (Fast Tests Only, No Creds)

256 tests   - 473   256 ✅  - 473   3m 28s ⏱️ - 14m 15s
  1 suites ±  0     0 💤 ±  0 
  1 files   ±  0     0 ❌ ±  0 

Results for commit 99caa5a. ± Comparison against base commit 1266018.

This pull request removes 473 tests.
tests.integration_tests.test_lowcode_connectors ‑ test_expected_hardcoded_failures[failure_group0-ValidationError]
tests.integration_tests.test_lowcode_connectors ‑ test_expected_hardcoded_failures[failure_group1-Exception]
tests.integration_tests.test_lowcode_connectors ‑ test_expected_hardcoded_failures[failure_group2-AirbyteConnectorFailedError]
tests.integration_tests.test_lowcode_connectors ‑ test_nocode_connectors_setup[source-100ms]
tests.integration_tests.test_lowcode_connectors ‑ test_nocode_connectors_setup[source-7shifts]
tests.integration_tests.test_lowcode_connectors ‑ test_nocode_connectors_setup[source-activecampaign]
tests.integration_tests.test_lowcode_connectors ‑ test_nocode_connectors_setup[source-agilecrm]
tests.integration_tests.test_lowcode_connectors ‑ test_nocode_connectors_setup[source-aha]
tests.integration_tests.test_lowcode_connectors ‑ test_nocode_connectors_setup[source-airbyte]
tests.integration_tests.test_lowcode_connectors ‑ test_nocode_connectors_setup[source-aircall]
…

♻️ This comment has been updated with latest results.

@github-actions

Copy link
Copy Markdown

PyTest Results (Full)

318 tests   - 473   304 ✅  - 473   17m 28s ⏱️ - 12m 6s
  1 suites ±  0    14 💤 ±  0 
  1 files   ±  0     0 ❌ ±  0 

Results for commit 99caa5a. ± Comparison against base commit 1266018.

This pull request removes 473 tests.
tests.integration_tests.test_lowcode_connectors ‑ test_expected_hardcoded_failures[failure_group0-ValidationError]
tests.integration_tests.test_lowcode_connectors ‑ test_expected_hardcoded_failures[failure_group1-Exception]
tests.integration_tests.test_lowcode_connectors ‑ test_expected_hardcoded_failures[failure_group2-AirbyteConnectorFailedError]
tests.integration_tests.test_lowcode_connectors ‑ test_nocode_connectors_setup[source-100ms]
tests.integration_tests.test_lowcode_connectors ‑ test_nocode_connectors_setup[source-7shifts]
tests.integration_tests.test_lowcode_connectors ‑ test_nocode_connectors_setup[source-activecampaign]
tests.integration_tests.test_lowcode_connectors ‑ test_nocode_connectors_setup[source-agilecrm]
tests.integration_tests.test_lowcode_connectors ‑ test_nocode_connectors_setup[source-aha]
tests.integration_tests.test_lowcode_connectors ‑ test_nocode_connectors_setup[source-airbyte]
tests.integration_tests.test_lowcode_connectors ‑ test_nocode_connectors_setup[source-aircall]
…

@aaronsteers Aaron ("AJ") Steers (aaronsteers) merged commit bfed5ef into main Jul 31, 2025
23 checks passed
@aaronsteers Aaron ("AJ") Steers (aaronsteers) deleted the devin/1753934781-remove-flaky-lowcode-test branch July 31, 2025 05:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants