airbyte
airbyte copied to clipboard
🎉 Source Amazon Seller Partner: add restock inventory reports
What
*Adding restock inventory reports
Recommended reading order
-
source.py
-
streams.py
🚨 User Impact 🚨
No breaking change
Pre-merge Checklist
Expand the relevant checklist and delete the others.
Updating a connector
Community member or Airbyter
- [x] 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
- [x] 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
- [ ] Connector's
- [x] 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
Tests
Unit
Results (0.51s): 94 passed Name Stmts Miss Cover Missing
source_amazon_seller_partner/init.py 2 0 100% source_amazon_seller_partner/auth.py 61 36 41% 24, 45, 48-99, 102-108 source_amazon_seller_partner/constants.py 37 1 97% 67 source_amazon_seller_partner/source.py 49 10 80% 103-114 source_amazon_seller_partner/spec.py 23 0 100% source_amazon_seller_partner/streams.py 470 215 54% 64, 67, 70, 79, 84, 89, 94, 99, 104-116, 119-122, 128, 135-138, 186, 190, 193, 196, 199, 219-230, 239-254, 263-272, 275-282, 286-291, 297-302, 305-315, 318, 321, 334-367, 448-451, 458-459, 468-473, 477-506, 546, 555-564, 571-574, 580-602, 652, 666-671, 699, 704-706, 709, 712-716, 738, 743-754, 757, 770, 775, 810-814, 828, 845, 862-869, 900-939 unit_tests/test_finance_streams.py 63 1 98% 157 unit_tests/test_reports_streams_rate_limits.py 33 0 100% unit_tests/test_reports_streams_settlement_report.py 23 0 100% unit_tests/test_source.py 42 0 100% unit_tests/test_transform_function.py 23 0 100%
TOTAL 826 263 68%
Acceptance
python -m pytest integration_tests -p integration_tests.acceptance Test session starts (platform: darwin, Python 3.9.11, pytest 6.1.2, pytest-sugar 0.9.4) cachedir: .pytest_cache rootdir: /Users/ganpatagarwal/stoke/airbyte, configfile: pytest.ini plugins: sugar-0.9.4, mock-3.7.0, timeout-1.4.2 collecting ... airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_config_match_spec[inputs0] ✓ 5% ▌ airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_match_expected[inputs0] ✓ 10% █ airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_docker_env[inputs0] ✓ 15% █▌ airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_oneof_usage[inputs0] ✓ 20% ██ airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_required[inputs0] ✓ 25% ██▌ airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_optional[inputs0] ✓ 30% ███ airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_has_secret[inputs0] ✓ 35% ███▌ airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_secret_never_in_the_output[inputs0] ✓ 40% ████ airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_defined_refs_exist_in_json_spec_file[inputs0] ✓ 45% ████▌ airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_oauth_flow_parameters[inputs0] ✓ 50% █████ airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_additional_properties_is_true[inputs0] ✓ 55% █████▌ airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestConnection.test_check[inputs0] ✓ 60% ██████ airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_discover[inputs0] ✓ 65% ██████▌ airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_defined_cursors_exist_in_schema[inputs0] ✓ 70% ███████ airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_defined_refs_exist_in_schema[inputs0] ✓ 75% ███████▌ airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_defined_keyword_exist_in_schema[inputs0-allOf] ✓ 80% ████████ airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_defined_keyword_exist_in_schema[inputs0-not] ✓ 85% ████████▌ airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_primary_keys_exist_in_schema[inputs0] ✓ 90% █████████ airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_streams_has_sync_modes[inputs0] ✓ 95% █████████▌ airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_additional_properties_is_true[inputs0] ✓ 100% ██████████ {"type": "LOG", "log": {"level": "INFO", "message": "/Users/ganpatagarwal/stoke/airbyte/airbyte-integrations/connectors/source-amazon-seller-partner - SAT run - fa3ce29e46a202bbdb32036cc7b9e8b0124b830b - PASSED"}}
================================================================================== short test summary info =================================================================================== SKIPPED [1] ../../bases/source-acceptance-test/source_acceptance_test/plugin.py:56: Skipping TestBasicRead.test_read because not found in the config SKIPPED [1] ../../bases/source-acceptance-test/source_acceptance_test/plugin.py:56: Skipping TestFullRefresh.test_sequential_reads because not found in the config SKIPPED [1] ../../bases/source-acceptance-test/source_acceptance_test/plugin.py:56: Skipping TestIncremental.test_two_sequential_reads because not found in the config
Results (8.49s): 20 passed
acceptance test is failing from master
branch as well.
self = <source_acceptance_test.tests.test_core.TestDiscovery object at 0x1056c36a0>
discovered_catalog = {'GET_AMAZON_FULFILLED_SHIPMENTS_DATA_GENERAL': AirbyteStream(name='GET_AMAZON_FULFILLED_SHIPMENTS_DATA_GENERAL', json...fresh'>], source_defined_cursor=None, default_cursor_field=None, source_defined_primary_key=None, namespace=None), ...}
def test_additional_properties_is_true(self, discovered_catalog: Mapping[str, Any]):
"""Check that value of the "additionalProperties" field is always true.
A stream schema declaring "additionalProperties": false introduces the risk of accidental breaking changes.
Specifically, when removing a property from the stream schema, existing connector catalog will no longer be valid.
False value introduces the risk of accidental breaking changes.
Read https://github.com/airbytehq/airbyte/issues/14196 for more details"""
for stream in discovered_catalog.values():
additional_properties_values = list(find_all_values_for_key_in_schema(stream.json_schema, "additionalProperties"))
if additional_properties_values:
> assert all(
[additional_properties_value is True for additional_properties_value in additional_properties_values]
), "When set, additionalProperties field value must be true for backward compatibility."
E AssertionError: When set, additionalProperties field value must be true for backward compatibility.
E assert False
E + where False = all([False, False, False])
../../bases/source-acceptance-test/source_acceptance_test/tests/test_core.py:274: AssertionError
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_additional_properties_is_true[inputs0] ⨯ 100% ██████████
{"type": "LOG", "log": {"level": "INFO", "message": "/Users/ganpatagarwal/stoke/airbyte/airbyte-integrations/connectors/source-amazon-seller-partner - SAT run - 7702dec91bd540e23c81f311582acdc0ca27ad7d - FAILED"}}```
how to fix?
acceptance tests are fixed now
python -m pytest integration_tests -p integration_tests.acceptance
Test session starts (platform: darwin, Python 3.9.11, pytest 6.1.2, pytest-sugar 0.9.4)
cachedir: .pytest_cache
rootdir: /Users/ganpatagarwal/stoke/airbyte, configfile: pytest.ini
plugins: sugar-0.9.4, mock-3.7.0, timeout-1.4.2
collecting ...
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_config_match_spec[inputs0] ✓ 5% ▌
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_match_expected[inputs0] ✓ 10% █
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_docker_env[inputs0] ✓ 15% █▌
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_oneof_usage[inputs0] ✓ 20% ██
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_required[inputs0] ✓ 25% ██▌
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_optional[inputs0] ✓ 30% ███
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_has_secret[inputs0] ✓ 35% ███▌
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_secret_never_in_the_output[inputs0] ✓ 40% ████
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_defined_refs_exist_in_json_spec_file[inputs0] ✓ 45% ████▌
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_oauth_flow_parameters[inputs0] ✓ 50% █████
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_additional_properties_is_true[inputs0] ✓ 55% █████▌
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestConnection.test_check[inputs0] ✓ 60% ██████
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_discover[inputs0] ✓ 65% ██████▌
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_defined_cursors_exist_in_schema[inputs0] ✓ 70% ███████
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_defined_refs_exist_in_schema[inputs0] ✓ 75% ███████▌
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_defined_keyword_exist_in_schema[inputs0-allOf] ✓ 80% ████████
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_defined_keyword_exist_in_schema[inputs0-not] ✓ 85% ████████▌
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_primary_keys_exist_in_schema[inputs0] ✓ 90% █████████
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_streams_has_sync_modes[inputs0] ✓ 95% █████████▌
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_additional_properties_is_true[inputs0] ✓ 100% ██████████
{"type": "LOG", "log": {"level": "INFO", "message": "/Users/ganpatagarwal/stoke/airbyte/airbyte-integrations/connectors/source-amazon-seller-partner - SAT run - fa3ce29e46a202bbdb32036cc7b9e8b0124b830b - PASSED"}}
================================================================================== short test summary info ===================================================================================
SKIPPED [1] ../../bases/source-acceptance-test/source_acceptance_test/plugin.py:56: Skipping TestBasicRead.test_read because not found in the config
SKIPPED [1] ../../bases/source-acceptance-test/source_acceptance_test/plugin.py:56: Skipping TestFullRefresh.test_sequential_reads because not found in the config
SKIPPED [1] ../../bases/source-acceptance-test/source_acceptance_test/plugin.py:56: Skipping TestIncremental.test_two_sequential_reads because not found in the config
Results (8.49s):
20 passed
/test connector=connectors/source-amazon-seller-partner
:clock2: connectors/source-amazon-seller-partner https://github.com/airbytehq/airbyte/actions/runs/2834027731 :x: connectors/source-amazon-seller-partner https://github.com/airbytehq/airbyte/actions/runs/2834027731 :bug: https://gradle.com/s/aykmpflibtm7k
Build Failed
Test summary info:
Could not find result summary
/test connector=connectors/source-amazon-seller-partner
:clock2: connectors/source-amazon-seller-partner https://github.com/airbytehq/airbyte/actions/runs/2834117543 :white_check_mark: connectors/source-amazon-seller-partner https://github.com/airbytehq/airbyte/actions/runs/2834117543 Python tests coverage:
Name Stmts Miss Cover
---------------------------------------------------------------
source_amazon_seller_partner/spec.py 23 0 100%
source_amazon_seller_partner/__init__.py 2 0 100%
source_amazon_seller_partner/constants.py 37 1 97%
source_amazon_seller_partner/source.py 49 10 80%
source_amazon_seller_partner/streams.py 470 215 54%
source_amazon_seller_partner/auth.py 61 36 41%
---------------------------------------------------------------
TOTAL 642 262 59%
Name Stmts Miss Cover Missing
----------------------------------------------------------------------------------
source_acceptance_test/base.py 10 4 60% 15-18
source_acceptance_test/config.py 83 6 93% 78-80, 84-86
source_acceptance_test/conftest.py 164 164 0% 6-282
source_acceptance_test/plugin.py 48 48 0% 6-104
source_acceptance_test/tests/test_core.py 338 111 67% 40, 60-68, 73-80, 84-85, 89-90, 174, 216-233, 253-261, 265-270, 276, 309-314, 356-363, 403-405, 408, 468-477, 506-507, 513, 516, 549-559, 572-597, 602-606
source_acceptance_test/tests/test_full_refresh.py 52 2 96% 34, 65
source_acceptance_test/tests/test_incremental.py 121 25 79% 21-23, 29-31, 36-43, 48-61, 208-214
source_acceptance_test/utils/asserts.py 37 2 95% 57-58
source_acceptance_test/utils/common.py 77 17 78% 15-16, 24-30, 47-54, 64, 67
source_acceptance_test/utils/compare.py 62 23 63% 21-51, 68, 97-99
source_acceptance_test/utils/connector_runner.py 110 48 56% 23-26, 32, 36, 39-64, 67-69, 72-74, 77-79, 82-84, 87-89, 92-110, 144-146
source_acceptance_test/utils/json_schema_helper.py 105 13 88% 30-31, 38, 41, 65-68, 96, 120, 190-192
----------------------------------------------------------------------------------
TOTAL 1311 463 65%
Build Passed
Test summary info:
=========================== short test summary info ============================
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/plugin.py:60: Skipping TestBasicRead.test_read because not found in the config
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/plugin.py:60: Skipping TestFullRefresh.test_sequential_reads because not found in the config
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/plugin.py:60: Skipping TestIncremental.test_two_sequential_reads because not found in the config
======================== 22 passed, 3 skipped in 20.35s ========================
/publish connector=connectors/source-amazon-seller-partner
:clock2: Publishing the following connectors:
connectors/source-amazon-seller-partner
https://github.com/airbytehq/airbyte/actions/runs/2839956356
Connector | Did it publish? | Were definitions generated? |
---|---|---|
connectors/source-amazon-seller-partner | :x: | :x: |
if you have connectors that successfully published but failed definition generation, follow step 4 here ▶️
Assigned to @monai
Hey! I'm participating in the Airbyte Maintainers Program and am assigned to review your PR.
The PR is straightforward, and the code works as expected, but I'll ask you to make changes to improve code reliability and style.
-
Remove
"additionalProperties": true
fromsource_amazon_seller_partner/schemas/VendorDirectFulfillmentShipping.json
. This property istrue
by default, so there is no need to set it explicitly. For context, see #14878 and #14924. -
Fill
json_schema
property in fileintegration_tests/configured_catalog_restock_inventory.json
with the contents ofsource_amazon_seller_partner/schemas/GET_RESTOCK_INVENTORY_RECOMMENDATIONS_REPORT.json
. Without it, integration tests may report success when there's an actual failure. All other configured catalogs lack it too, but they're a bad example and should be fixed eventually in other PRs. -
Add
integration_tests/configured_catalog_restock_inventory.json
as abasic_read
test case toacceptance-test-config.yml
.
cc @sajarin
Thanks for the review @monai 👍
I have made the changes. Request to please review again.
You reverted commit that changes additionalProperties
from false
to true
in 9c4e5672c23f8ad76dc1ada092f654fac2ba8c8d. But now acceptance tests fail again. Instead, remove these properties from VendorDirectFulfillmentShipping.json
. additionalProperties
default value is true
, so there is no need to have them in the file.
The change for all such properties should look like this:
--- a/airbyte-integrations/connectors/source-amazon-seller-partner/source_amazon_seller_partner/schemas/VendorDirectFulfillmentShipping.json
+++ b/airbyte-integrations/connectors/source-amazon-seller-partner/source_amazon_seller_partner/schemas/VendorDirectFulfillmentShipping.json
@@ -55,7 +55,6 @@
"type": ["null", "array"],
"items": {
"type": ["null", "object"],
- "additionalProperties": false,
"properties": {
"taxRegistrationType": {
"type": ["null", "string"]
I am not sure if above change should fall under this PR.
Would it be possible for a maintainer to raise that PR and quickly merge?
Yes, it should. Without fixing the VendorDirectFulfillmentShipping.json
acceptance tests fail. Unless the tests pass, the PR cannot be merged.
You already had fixed it in 84470469d6dbba3466cde5eab9471cb03e7d1f78 and then reverted in 9c4e5672c23f8ad76dc1ada092f654fac2ba8c8d. This change is trivial, so there is no need for another PR just for three lines.
The only issue is that your fix in 84470469d6dbba3466cde5eab9471cb03e7d1f78 unnecessary verbose. I suggest following #14924 style to remove additionalProperties
completely.
removed additionalProperties
attribute
Any pointers on how to fix this error
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― TestDiscovery.test_backward_compatibility[inputs0] ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
self = <source_acceptance_test.tests.test_core.TestDiscovery object at 0x111f27d30>, skip_backward_compatibility_tests = False
discovered_catalog = {'GET_AMAZON_FULFILLED_SHIPMENTS_DATA_GENERAL': AirbyteStream(name='GET_AMAZON_FULFILLED_SHIPMENTS_DATA_GENERAL', json...fresh'>], source_defined_cursor=None, default_cursor_field=None, source_defined_primary_key=None, namespace=None), ...}
previous_discovered_catalog = {'GET_AMAZON_FULFILLED_SHIPMENTS_DATA_GENERAL': AirbyteStream(name='GET_AMAZON_FULFILLED_SHIPMENTS_DATA_GENERAL', json...fresh'>], source_defined_cursor=None, default_cursor_field=None, source_defined_primary_key=None, namespace=None), ...}
@pytest.mark.default_timeout(60)
@pytest.mark.backward_compatibility
def test_backward_compatibility(
self,
skip_backward_compatibility_tests: bool,
discovered_catalog: MutableMapping[str, AirbyteStream],
previous_discovered_catalog: MutableMapping[str, AirbyteStream],
):
"""Check if the current catalog is backward_compatible with the previous one."""
assert isinstance(discovered_catalog, MutableMapping) and isinstance(previous_discovered_catalog, MutableMapping)
checker = CatalogDiffChecker(previous_discovered_catalog, discovered_catalog)
> checker.assert_is_backward_compatible()
../../bases/source-acceptance-test/source_acceptance_test/tests/test_core.py:321:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../bases/source-acceptance-test/source_acceptance_test/utils/backward_compatibility.py:217: in assert_is_backward_compatible
self.check_if_cursor_field_was_changed(self.streams_cursor_fields_diff)
../../bases/source-acceptance-test/source_acceptance_test/utils/backward_compatibility.py:231: in check_if_cursor_field_was_changed
self._raise_error("The value of 'default_cursor_field' was changed", diff)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <source_acceptance_test.utils.backward_compatibility.CatalogDiffChecker object at 0x107e78d00>, message = "The value of 'default_cursor_field' was changed"
diff = {'dictionary_item_added': [<root['GET_RESTOCK_INVENTORY_RECOMMENDATIONS_REPORT'] t1:not present, t2:None>]}
def _raise_error(self, message: str, diff: DeepDiff):
> raise NonBackwardCompatibleError(f"{message}. Diff: {diff.pretty()}", self.context)
E source_acceptance_test.utils.backward_compatibility.NonBackwardCompatibleError: BackwardIncompatibilityContext.DISCOVER - The value of 'default_cursor_field' was changed. Diff: Item root['GET_RESTOCK_INVENTORY_RECOMMENDATIONS_REPORT'] added to dictionary.
../../bases/source-acceptance-test/source_acceptance_test/utils/backward_compatibility.py:38: NonBackwardCompatibleError
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_backward_compatibility[inputs0] ⨯ 100% ██████████
{"type": "LOG", "log": {"level": "INFO", "message": "/Users/ganpatagarwal/stoke/airbyte/airbyte-integrations/connectors/source-amazon-seller-partner - SAT run - 68e552556a0ba92d024da69b05d1704699343e8d - FAILED"}}
Well done! The PR now looks great and is ready for merge.
However, the NonBackwardCompatibleError
error is new to me. It seems that this is a regression introduced in #15520. @alafanechere can you take a look at this?
self = <source_acceptance_test.utils.backward_compatibility.CatalogDiffChecker object at 0x10580c880>
message = "The value of 'default_cursor_field' was changed"
diff = {'dictionary_item_added': [<root['GET_RESTOCK_INVENTORY_RECOMMENDATIONS_REPORT'] t1:not present, t2:None>]}
The test detects a change from not present
to None
when a new full_refresh
stream is added. I suggest updating test_backward_compatibility
to skip newly added streams since there's nothing to check for backward compatibility.
@monai and @ganpatagarwal : I fixed the backward compatibility test (https://github.com/airbytehq/airbyte/pull/15835). Acceptance tests should now pass after updating your branch.
Thanks @alafanechere 👍
I have updated with master branch and no errors on acceptance test !!
/test connector=connectors/source-amazon-seller-partner
I can confirm test passing. So, the PR is ready for merge. cc @sajarin
/test connector=connectors/source-amazon-seller-partner
:clock2: connectors/source-amazon-seller-partner https://github.com/airbytehq/airbyte/actions/runs/2908827527 :white_check_mark: connectors/source-amazon-seller-partner https://github.com/airbytehq/airbyte/actions/runs/2908827527 Python tests coverage:
Name Stmts Miss Cover
---------------------------------------------------------------
source_amazon_seller_partner/spec.py 23 0 100%
source_amazon_seller_partner/__init__.py 2 0 100%
source_amazon_seller_partner/constants.py 37 1 97%
source_amazon_seller_partner/source.py 49 10 80%
source_amazon_seller_partner/streams.py 470 215 54%
source_amazon_seller_partner/auth.py 61 36 41%
---------------------------------------------------------------
TOTAL 642 262 59%
Name Stmts Miss Cover Missing
----------------------------------------------------------------------------------
source_acceptance_test/base.py 10 4 60% 15-18
source_acceptance_test/config.py 83 6 93% 78-80, 84-86
source_acceptance_test/conftest.py 164 164 0% 6-282
source_acceptance_test/plugin.py 48 48 0% 6-104
source_acceptance_test/tests/test_core.py 329 111 66% 39, 50-58, 63-70, 74-75, 79-80, 164, 202-219, 228-236, 240-245, 251, 284-289, 327-334, 374-376, 379, 439-448, 477-478, 484, 487, 520-530, 543-568, 573-577
source_acceptance_test/tests/test_full_refresh.py 52 2 96% 34, 65
source_acceptance_test/tests/test_incremental.py 121 25 79% 21-23, 29-31, 36-43, 48-61, 208-216
source_acceptance_test/utils/asserts.py 37 2 95% 57-58
source_acceptance_test/utils/common.py 77 17 78% 15-16, 24-30, 47-54, 64, 67
source_acceptance_test/utils/compare.py 62 23 63% 21-51, 68, 97-99
source_acceptance_test/utils/connector_runner.py 110 48 56% 23-26, 32, 36, 39-64, 67-69, 72-74, 77-79, 82-84, 87-89, 92-110, 144-146
source_acceptance_test/utils/json_schema_helper.py 105 13 88% 30-31, 38, 41, 65-68, 96, 120, 190-192
----------------------------------------------------------------------------------
TOTAL 1322 463 65%
Build Passed
Test summary info:
=========================== short test summary info ============================
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/plugin.py:60: Skipping TestBasicRead.test_read because not found in the config
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/plugin.py:60: Skipping TestFullRefresh.test_sequential_reads because not found in the config
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/plugin.py:60: Skipping TestIncremental.test_two_sequential_reads because not found in the config
======================== 22 passed, 3 skipped in 19.91s ========================
/publish connector=connectors/source-amazon-seller-partner
:clock2: Publishing the following connectors:
connectors/source-amazon-seller-partner
https://github.com/airbytehq/airbyte/actions/runs/2909104050
Connector | Did it publish? | Were definitions generated? |
---|---|---|
connectors/source-amazon-seller-partner | :white_check_mark: | :white_check_mark: |
if you have connectors that successfully published but failed definition generation, follow step 4 here ▶️