Skip to content

Conversation

@danieldiamond
Copy link
Contributor

@danieldiamond danieldiamond commented May 20, 2022

What

#11453

How

Fix get_updated_state function

Recommended reading order

  1. x.java
  2. y.python

🚨 User Impact 🚨

Are there any breaking changes? What is the end result perceived by the user? If yes, please merge this PR with the 🚨🚨 emoji so changelog authors can further highlight this if needed.

Pre-merge Checklist

Expand the relevant checklist and delete the others.

New Connector

Community member or Airbyter

  • Community member? Grant edit access to maintainers (instructions)
  • Secrets in the connector's spec are annotated with airbyte_secret
  • Unit & integration tests added and passing. Community members, please provide proof of success locally e.g: screenshot or copy-paste unit, integration, and acceptance test output. To run acceptance tests for a Python connector, follow instructions in the README. For java connectors run ./gradlew :airbyte-integrations:connectors:<name>:integrationTest.
  • Code reviews completed
  • Documentation updated
    • Connector's README.md
    • Connector's bootstrap.md. See description and examples
    • docs/SUMMARY.md
    • docs/integrations/<source or destination>/<name>.md including changelog. See changelog example
    • docs/integrations/README.md
    • airbyte-integrations/builds.md
  • PR name follows PR naming conventions

Airbyter

If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.

  • Create a non-forked branch based on this PR and test the below items on it
  • Build is successful
  • If new credentials are required for use in CI, add them to GSM. Instructions.
  • /test connector=connectors/<name> command is passing
  • New Connector version released on Dockerhub by running the /publish command described here
  • After the connector is published, connector added to connector index as described here
  • Seed specs have been re-generated by building the platform and committing the changes to the seed spec files, as described here
Updating a connector

Community member or Airbyter

  • Grant edit access to maintainers (instructions)
  • Secrets in the connector's spec are annotated with airbyte_secret
  • Unit & integration tests added and passing. Community members, please provide proof of success locally e.g: screenshot or copy-paste unit, integration, and acceptance test output. To run acceptance tests for a Python connector, follow instructions in the README. For java connectors run ./gradlew :airbyte-integrations:connectors:<name>:integrationTest.
  • Code reviews completed
  • Documentation updated
    • Connector's README.md
    • Connector's bootstrap.md. See description and examples
    • Changelog updated in docs/integrations/<source or destination>/<name>.md including changelog. See changelog example
  • PR name follows PR naming conventions

Airbyter

If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.

  • Create a non-forked branch based on this PR and test the below items on it
  • Build is successful
  • If new credentials are required for use in CI, add them to GSM. Instructions.
  • /test connector=connectors/<name> command is passing
  • New Connector version released on Dockerhub and connector version bumped by running the /publish command described here
Connector Generator
  • Issue acceptance criteria met
  • PR name follows PR naming conventions
  • If adding a new generator, add it to the list of scaffold modules being tested
  • The generator test modules (all connectors with -scaffold in their name) have been updated with the latest scaffold by running ./gradlew :airbyte-integrations:connector-templates:generator:testScaffoldTemplates then checking in your changes
  • Documentation which references the generator is updated as needed

Tests

Unit

python -m pytest unit_tests
Test session starts (platform: darwin, Python 3.9.12, pytest 6.2.4, pytest-sugar 0.9.4)
cachedir: .pytest_cache
rootdir: /Users/danieldiamond/repos/airbyte, configfile: pytest.ini
plugins: sugar-0.9.4, requests-mock-1.9.3, mock-3.7.0, timeout-1.4.2
collecting ...
airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource.test_get_updated_state_lesser[current_state0-lesser_date_record0-expected_state0] ✓14% █▌
airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource.test_get_updated_state_lesser[current_state1-lesser_date_record1-expected_state1] ✓29% ██▉
airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource.test_get_updated_state_lesser[current_state2-lesser_date_record2-expected_state2] ✓43% ████▍
airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource.test_get_updated_state_bigger[current_state0-bigger_date_record0-expected_state0] ✓57% █████▊
airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource.test_get_updated_state_bigger[current_state1-bigger_date_record1-expected_state1] ✓71% ███████▎
airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource.test_get_updated_state_bigger[current_state2-bigger_date_record2-expected_state2] ✓86% ████████▋
airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource.test_get_updated_state_from_null_state ✓100% ██████████
======================================================== warnings summary ========================================================
airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource::test_get_updated_state_lesser[current_state0-lesser_date_record0-expected_state0]
airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource::test_get_updated_state_lesser[current_state1-lesser_date_record1-expected_state1]
airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource::test_get_updated_state_lesser[current_state2-lesser_date_record2-expected_state2]
airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource::test_get_updated_state_bigger[current_state0-bigger_date_record0-expected_state0]
airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource::test_get_updated_state_bigger[current_state1-bigger_date_record1-expected_state1]
airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource::test_get_updated_state_bigger[current_state2-bigger_date_record2-expected_state2]
airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource::test_get_updated_state_from_null_state
/Users/danieldiamond/repos/airbyte/airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py:15: DeprecationWarning: Call to deprecated class TokenAuthenticator. (Use airbyte_cdk.sources.streams.http.requests_native_auth.TokenAuthenticator instead) -- Deprecated since version 0.1.20.
authenticator = TokenAuthenticator(token=config["access_token"])

airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py: 14 warnings
/Users/danieldiamond/.virtualenvs/airbyte/lib/python3.9/site-packages/deprecated/classic.py:173: DeprecationWarning: Call to deprecated class HttpAuthenticator. (Use requests.auth.AuthBase instead) -- Deprecated since version 0.1.20.
return old_new1(cls, *args, **kwargs)

airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource::test_get_updated_state_lesser[current_state0-lesser_date_record0-expected_state0]
airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource::test_get_updated_state_lesser[current_state1-lesser_date_record1-expected_state1]
airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource::test_get_updated_state_lesser[current_state2-lesser_date_record2-expected_state2]
airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource::test_get_updated_state_bigger[current_state0-bigger_date_record0-expected_state0]
airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource::test_get_updated_state_bigger[current_state1-bigger_date_record1-expected_state1]
airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource::test_get_updated_state_bigger[current_state2-bigger_date_record2-expected_state2]
airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_for_updated_state.py::TestSurveymonkeySource::test_get_updated_state_from_null_state
/Users/danieldiamond/.virtualenvs/airbyte/lib/python3.9/site-packages/airbyte_cdk/sources/streams/http/http.py:42: DeprecationWarning: Call to deprecated class NoAuth. (Set authenticator=None instead) -- Deprecated since version 0.1.20.
self._authenticator: HttpAuthenticator = NoAuth()

-- Docs: https://docs.pytest.org/en/stable/warnings.html

Results (0.16s):
7 passed

Integration

Put your integration tests output here.

Acceptance

Put your acceptance tests output here.

@github-actions github-actions bot added the area/connectors Connector related issues label May 20, 2022
@github-actions github-actions bot added the area/documentation Improvements or additions to documentation label May 20, 2022
@danieldiamond
Copy link
Contributor Author

@marcosmarxm
Copy link
Contributor

marcosmarxm commented May 20, 2022

/test connector=connectors/source-surveymonkey

🕑 connectors/source-surveymonkey https://github.com/airbytehq/airbyte/actions/runs/2358526683
✅ connectors/source-surveymonkey https://github.com/airbytehq/airbyte/actions/runs/2358526683
Python tests coverage:

Name Stmts Miss Cover ------------------------------------------------------------------------ source_acceptance_test/utils/__init__.py 6 0 100% source_acceptance_test/tests/__init__.py 4 0 100% source_acceptance_test/__init__.py 2 0 100% source_acceptance_test/tests/test_full_refresh.py 52 2 96% source_acceptance_test/utils/asserts.py 37 2 95% source_acceptance_test/config.py 77 6 92% source_acceptance_test/utils/json_schema_helper.py 105 13 88% source_acceptance_test/tests/test_incremental.py 121 25 79% source_acceptance_test/utils/common.py 80 17 79% source_acceptance_test/tests/test_core.py 294 106 64% source_acceptance_test/utils/compare.py 62 23 63% source_acceptance_test/base.py 10 4 60% source_acceptance_test/utils/connector_runner.py 110 48 56% ------------------------------------------------------------------------ TOTAL 960 246 74% Name Stmts Miss Cover ----------------------------------------------------- source_surveymonkey/__init__.py 2 0 100% source_surveymonkey/source.py 36 20 44% source_surveymonkey/streams.py 137 80 42% ----------------------------------------------------- TOTAL 175 100 43% 

Python short test summary info:

=========================== short test summary info ============================ SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/plugin.py:56: Skipping TestIncremental.test_two_sequential_reads because not found in the config =================== 21 passed, 1 skipped in 80.02s (0:01:20) =================== 
@danieldiamond danieldiamond marked this pull request as draft May 24, 2022 11:32
@danieldiamond
Copy link
Contributor Author

Hold up, integration tests dont seem to include responses!

@danieldiamond danieldiamond marked this pull request as ready for review May 24, 2022 12:20
@danieldiamond
Copy link
Contributor Author

danieldiamond commented May 24, 2022

@marcosmarxm are you able to check this works incrementally with more than 1 survey i.e. that it doesnt just use the latest cursor field for all responses when its pulling responses for a specific survey. i.e. trying to resolve this issue

I've confirmed this actually fixes the issue! Can you please trigger the tests and publish if its all good?

@marcosmarxm
Copy link
Contributor

marcosmarxm commented May 25, 2022

/test connector=connectors/source-surveymonkey

🕑 connectors/source-surveymonkey https://github.com/airbytehq/airbyte/actions/runs/2381317836
✅ connectors/source-surveymonkey https://github.com/airbytehq/airbyte/actions/runs/2381317836
Python tests coverage:

Name Stmts Miss Cover ------------------------------------------------------------------------ source_acceptance_test/utils/__init__.py 6 0 100% source_acceptance_test/tests/__init__.py 4 0 100% source_acceptance_test/__init__.py 2 0 100% source_acceptance_test/tests/test_full_refresh.py 52 2 96% source_acceptance_test/utils/asserts.py 37 2 95% source_acceptance_test/config.py 77 6 92% source_acceptance_test/utils/json_schema_helper.py 105 13 88% source_acceptance_test/tests/test_incremental.py 121 25 79% source_acceptance_test/utils/common.py 80 17 79% source_acceptance_test/tests/test_core.py 294 106 64% source_acceptance_test/utils/compare.py 62 23 63% source_acceptance_test/base.py 10 4 60% source_acceptance_test/utils/connector_runner.py 110 48 56% ------------------------------------------------------------------------ TOTAL 960 246 74% Name Stmts Miss Cover ----------------------------------------------------- source_surveymonkey/__init__.py 2 0 100% source_surveymonkey/source.py 36 20 44% source_surveymonkey/streams.py 137 80 42% ----------------------------------------------------- TOTAL 175 100 43% 

Build Passed

Test summary info:

=========================== short test summary info ============================ SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/plugin.py:56: Skipping TestIncremental.test_two_sequential_reads because not found in the config =================== 21 passed, 1 skipped in 93.11s (0:01:33) =================== 
@harshithmullapudi
Copy link
Contributor

harshithmullapudi commented May 25, 2022

/publish connector=connectors/source-surveymonkey auto-bump-version=false

🕑 connectors/source-surveymonkey https://github.com/airbytehq/airbyte/actions/runs/2383503037
🚀 Successfully published connectors/source-surveymonkey
✅ connectors/source-surveymonkey https://github.com/airbytehq/airbyte/actions/runs/2383503037

@harshithmullapudi harshithmullapudi merged commit fb9d2bc into airbytehq:master May 25, 2022
jscottpolevault pushed a commit to jscottpolevault/airbyte that referenced this pull request Jun 1, 2022
* Update get_updated_state * Bump Dockerfile version and update docs * Fix updated_state * Fix bug in response incremental stream * Include incremental stream in integration tests configured catalog * Formatting * chore: bump version in source definitions * chore: update seed file Co-authored-by: Harshith Mullapudi <harshithmullapudi@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/connectors Connector related issues area/documentation Improvements or additions to documentation community

4 participants