Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🐛 🚨🚨 Source LinkedIn Pages: fixed failing connection checks #18967

Conversation

tinomerl
Copy link
Contributor

@tinomerl tinomerl commented Nov 4, 2022

What

Fixes #15986

How

The problem was that the org_id was defined as a secret and a integer. By setting it to string in the spec.json The error mentioned in #15986 got fixed. But by changing the type of the org_id the acceptance tests for the backwards compatibility fail. Therefore i tested the connector with a local deployment. Everything could be replicated and worked fine.

Fixed an additional bug where two streams where defined two times in the streams method. This led to an error making it impossible to repliace data and broke the airbyte ui when checking the connection.

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/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

None were defined

Integration

Put your integration tests output here.

Acceptance Test session starts (platform: linux, Python 3.9.15, pytest 6.2.5, pytest-sugar 0.9.5) cachedir: .pytest_cache hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('/mnt/c/Users/Tino.Merl/Documents/repos/airbyte_fork/airbyte-integrations/connectors/source-linkedin-pages/.hypothesis/examples') rootdir: /mnt/c/Users/Tino.Merl/Documents/repos/airbyte_fork, configfile: pytest.ini plugins: hypothesis-6.54.6, cov-3.0.0, mock-3.6.1, sugar-0.9.5, timeout-1.4.2, requests-mock-1.9.3 collecting ... {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}} {"type": "LOG", "log": {"level": "WARN", "message": "The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format."}}

airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_config_match_spec[inputs0] ✓ 4% ▍
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_match_expected[inputs0] ✓ 8% ▊
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_docker_env[inputs0] ✓ 12% █▎
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_oneof_usage[inputs0] ✓ 15% █▋
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_required[inputs0] ✓ 19% █▉
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_optional[inputs0] ✓ 23% ██▍
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_has_secret[inputs0] ✓ 27% ██▊
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_secret_never_in_the_output[inputs0] ✓ 31% ███▏
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_defined_refs_exist_in_json_spec_file[inputs0] ✓ 35% ███▌
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_oauth_flow_parameters[inputs0] ✓ 38% ███▉

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― TestSpec.test_backward_compatibility[inputs0] ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

self = <source_acceptance_test.tests.test_core.TestSpec object at 0x7fd502c65d90>, skip_backward_compatibility_tests = False
actual_connector_spec = ConnectorSpecification(documentationUrl=AnyUrl('https://docs.airbyte.com/integrations/sources/linkedin-pages/', scheme...t_id'], ['client_secret']], oauthFlowOutputParameters=[['refresh_token']])), advanced_auth=None, protocol_version=None)
previous_connector_spec = ConnectorSpecification(documentationUrl=AnyUrl('https://docs.airbyte.com/integrations/sources/linkedin-pages/', scheme...t_id'], ['client_secret']], oauthFlowOutputParameters=[['refresh_token']])), advanced_auth=None, protocol_version=None)
number_of_configs_to_generate = 100

@pytest.mark.default_timeout(60)
@pytest.mark.backward_compatibility
def test_backward_compatibility(
    self,
    skip_backward_compatibility_tests: bool,
    actual_connector_spec: ConnectorSpecification,
    previous_connector_spec: ConnectorSpecification,
    number_of_configs_to_generate: int = 100,
):
    """Check if the current spec is backward_compatible with the previous one"""
    assert isinstance(actual_connector_spec, ConnectorSpecification) and isinstance(previous_connector_spec, ConnectorSpecification)
    checker = SpecDiffChecker(previous=previous_connector_spec.dict(), current=actual_connector_spec.dict())
  checker.assert_is_backward_compatible()

../../bases/source-acceptance-test/source_acceptance_test/tests/test_core.py:181:


../../bases/source-acceptance-test/source_acceptance_test/utils/backward_compatibility.py:131: in assert_is_backward_compatible
self.check_if_value_of_type_field_changed(self.connection_specification_diff)
../../bases/source-acceptance-test/source_acceptance_test/utils/backward_compatibility.py:60: in check_if_value_of_type_field_changed
self._raise_error("The'type' field value was changed.", diff)


self = <source_acceptance_test.utils.backward_compatibility.SpecDiffChecker object at 0x7fd502be9a60>, message = "The'type' field value was changed."
diff = {'values_changed': [<root['properties']['org_id']['type'] t1:'integer', t2:'string'>, <root['properties']['credentials']['title'] t1:'Authenticat...', t2:'Authenticat...'>]}

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.SPEC - The'type' field value was changed.. Diff: Value of root['properties']['org_id']['type'] changed from "integer" to "string".
E Value of root['properties']['credentials']['title'] changed from "Authentication *" to "Authentication".

../../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::TestSpec.test_backward_compatibility[inputs0] ⨯ 42% ████▎
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec.test_additional_properties_is_true[inputs0] ✓ 46% ████▋
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestConnection.test_check[inputs0] ✓ 50% █████
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestConnection.test_check[inputs1] ✓ 54% █████▍
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_discover[inputs0] ✓ 58% █████▊
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_defined_cursors_exist_in_schema[inputs0] ✓ 62% ██████▎
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_defined_refs_exist_in_schema[inputs0] ✓ 65% ██████▋
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_defined_keyword_exist_in_schema[inputs0-allOf] ✓ 69% ██████▉
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_defined_keyword_exist_in_schema[inputs0-not] ✓ 73% ███████▍
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_primary_keys_exist_in_schema[inputs0] ✓ 77% ███████▊
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_streams_has_sync_modes[inputs0] ✓ 81% ████████▏
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery.test_additional_properties_is_true[inputs0] ✓ 85% ████████▌ {"type": "LOG", "log": {"level": "ERROR", "message": "Docker container failed, code 1, error:\n{"type": "TRACE", "trace": {"type": "ERROR", "emitted_at": 1667571281562.35, "error": {"message": "Something went wrong in the connector. See the logs for more details.", "internal_message": "Config validation error: '' is not of type 'integer'", "stack_trace": "Traceback (most recent call last):\n File \"/airbyte/integration_code/main.py\", line 13, in \n launch(source, sys.argv[1:])\n File \"/usr/local/lib/python3.9/site-packages/airbyte_cdk/entrypoint.py\", line 123, in launch\n for message in source_entrypoint.run(parsed_args):\n File \"/usr/local/lib/python3.9/site-packages/airbyte_cdk/entrypoint.py\", line 96, in run\n check_config_against_spec_or_exit(connector_config, source_spec)\n File \"/usr/local/lib/python3.9/site-packages/airbyte_cdk/sources/utils/schema_helpers.py\", line 160, in check_config_against_spec_or_exit\n raise Exception(\"Config validation error: \" + validation_error.message) from None\nException: Config validation error: '' is not of type 'integer'\n", "failure_type": "system_error"}}}\n"}}

―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ERROR at setup of TestDiscovery.test_backward_compatibility[inputs0] ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

connector_config = SecretDict(******), previous_connector_docker_runner = <source_acceptance_test.utils.connector_runner.ConnectorRunner object at 0x7fd502a9faf0>, previous_cached_schemas = {}

@pytest.fixture(name="previous_discovered_catalog")
def previous_discovered_catalog_fixture(
    connector_config, previous_connector_docker_runner: ConnectorRunner, previous_cached_schemas
) -> MutableMapping[str, AirbyteStream]:
    """JSON schemas for each stream"""
    if not previous_cached_schemas:
      output = previous_connector_docker_runner.call_discover(config=connector_config)

../../bases/source-acceptance-test/source_acceptance_test/conftest.py:259:


../../bases/source-acceptance-test/source_acceptance_test/utils/connector_runner.py:82: in call_discover
output = list(self.run(cmd=cmd, config=config, **kwargs))
../../bases/source-acceptance-test/source_acceptance_test/utils/connector_runner.py:109: in run
for line in self.read(container, command=cmd, with_ext=raise_container_error):


cls = <class 'source_acceptance_test.utils.connector_runner.ConnectorRunner'>, container = <Container: fa83990fdf>, command = 'discover --config /data/tap_config.json', with_ext = True

@classmethod
def read(cls, container: Container, command: str = None, with_ext: bool = True) -> Iterable[str]:
    """Reads connector's logs per line"""
    buffer = b""
    exception = ""
    line = ""
    for chunk in container.logs(stdout=True, stderr=True, stream=True, follow=True):

        buffer += chunk
        while True:
            # every chunk can include several lines
            found = buffer.find(b"\n")
            if found <= -1:
                break

            line = buffer[: found + 1].decode("utf-8")
            if len(exception) > 0 or line.startswith("Traceback (most recent call last)"):
                exception += line
            else:
                yield line
            buffer = buffer[found + 1 :]

    if buffer:
        # send the latest chunk if exists
        line = buffer.decode("utf-8")
        if exception:
            exception += line
        else:
            yield line
    try:
        exit_status = container.wait()
        container.remove()
    except NotFound as err:
        logging.error(f"Waiting error: {err}, logs: {exception or line}")
        raise
    if exit_status["StatusCode"]:
        error = exit_status["Error"] or exception or line
        logging.error(f"Docker container failed, " f'code {exit_status["StatusCode"]}, error:\n{error}')
        if with_ext:
          raise ContainerError(
                container=container,
                exit_status=exit_status["StatusCode"],
                command=command,
                image=container.image,
                stderr=error,
            )

E docker.errors.ContainerError: Command 'discover --config /data/tap_config.json' in image '<Image: 'airbyte/source-linkedin-pages:latest'>' returned non-zero exit status 1: {"type": "TRACE", "trace": {"type": "ERROR", "emitted_at": 1667571281562.35, "error": {"message": "Something went wrong in the connector. See the logs for more details.", "internal_message": "Config validation error: '' is not of type 'integer'", "stack_trace": "Traceback (most recent call last):\n File "/airbyte/integration_code/main.py", line 13, in \n launch(source, sys.argv[1:])\n File "/usr/local/lib/python3.9/site-packages/airbyte_cdk/entrypoint.py", line 123, in launch\n for message in source_entrypoint.run(parsed_args):\n File "/usr/local/lib/python3.9/site-packages/airbyte_cdk/entrypoint.py", line 96, in run\n check_config_against_spec_or_exit(connector_config, source_spec)\n File "/usr/local/lib/python3.9/site-packages/airbyte_cdk/sources/utils/schema_helpers.py", line 160, in check_config_against_spec_or_exit\n raise Exception("Config validation error: " + validation_error.message) from None\nException: Config validation error: '' is not of type 'integer'\n", "failure_type": "system_error"}}}

../../bases/source-acceptance-test/source_acceptance_test/utils/connector_runner.py:155: ContainerError
------------------------------------------------------------------------------------------- Captured log setup -------------------------------------------------------------------------------------------
ERROR root:connector_runner.py:153 Docker container failed, code 1, error:
{"type": "TRACE", "trace": {"type": "ERROR", "emitted_at": 1667571281562.35, "error": {"message": "Something went wrong in the connector. See the logs for more details.", "internal_message": "Config validation error: '' is not of type 'integer'", "stack_trace": "Traceback (most recent call last):\n File "/airbyte/integration_code/main.py", line 13, in \n launch(source, sys.argv[1:])\n File "/usr/local/lib/python3.9/site-packages/airbyte_cdk/entrypoint.py", line 123, in launch\n for message in source_entrypoint.run(parsed_args):\n File "/usr/local/lib/python3.9/site-packages/airbyte_cdk/entrypoint.py", line 96, in run\n check_config_against_spec_or_exit(connector_config, source_spec)\n File "/usr/local/lib/python3.9/site-packages/airbyte_cdk/sources/utils/schema_helpers.py", line 160, in check_config_against_spec_or_exit\n raise Exception("Config validation error: " + validation_error.message) from None\nException: Config validation error: '' is not of type 'integer'\n", "failure_type": "system_error"}}}
88% ████████▉
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestBasicRead.test_read[inputs0] ✓ 92% █████████▎{"type": "LOG", "log": {"level": "ERROR", "message": "Docker container failed, code 1, error:\n{"type": "TRACE", "trace": {"type": "ERROR", "emitted_at": 1667571293712.079, "error": {"message": "Something went wrong in the connector. See the logs for more details.", "internal_message": "2 validation errors for ConfiguredAirbyteCatalog\nstreams -> 0 -> sync_mode\n value is not a valid enumeration member; permitted: 'full_refresh', 'incremental' (type=type_error.enum; enum_values=[<SyncMode.full_refresh: 'full_refresh'>, <SyncMode.incremental: 'incremental'>])\nstreams -> 0 -> destination_sync_mode\n value is not a valid enumeration member; permitted: 'append', 'overwrite', 'append_dedup' (type=type_error.enum; enum_values=[<DestinationSyncMode.append: 'append'>, <DestinationSyncMode.overwrite: 'overwrite'>, <DestinationSyncMode.append_dedup: 'append_dedup'>])", "stack_trace": "Traceback (most recent call last):\n File \"/airbyte/integration_code/main.py\", line 13, in \n launch(source, sys.argv[1:])\n File \"/usr/local/lib/python3.9/site-packages/airbyte_cdk/entrypoint.py\", line 131, in launch\n for message in source_entrypoint.run(parsed_args):\n File \"/usr/local/lib/python3.9/site-packages/airbyte_cdk/entrypoint.py\", line 119, in run\n config_catalog = self.source.read_catalog(parsed_args.catalog)\n File \"/usr/local/lib/python3.9/site-packages/airbyte_cdk/sources/source.py\", line 90, in read_catalog\n return ConfiguredAirbyteCatalog.parse_obj(self.read_config(catalog_path))\n File \"pydantic/main.py\", line 521, in pydantic.main.BaseModel.parse_obj\n File \"pydantic/main.py\", line 341, in pydantic.main.BaseModel.init\npydantic.error_wrappers.ValidationError: 2 validation errors for ConfiguredAirbyteCatalog\nstreams -> 0 -> sync_mode\n value is not a valid enumeration member; permitted: 'full_refresh', 'incremental' (type=type_error.enum; enum_values=[<SyncMode.full_refresh: 'full_refresh'>, <SyncMode.incremental: 'incremental'>])\nstreams -> 0 -> destination_sync_mode\n value is not a valid enumeration member; permitted: 'append', 'overwrite', 'append_dedup' (type=type_error.enum; enum_values=[<DestinationSyncMode.append: 'append'>, <DestinationSyncMode.overwrite: 'overwrite'>, <DestinationSyncMode.append_dedup: 'append_dedup'>])\n", "failure_type": "system_error"}}}\n"}}

airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestBasicRead.test_airbyte_trace_message_on_failure[inputs0] ✓ 96% █████████▋
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_full_refresh.py::TestFullRefresh.test_sequential_reads[inputs0] ✓ 100% ██████████
{"type": "LOG", "log": {"level": "INFO", "message": "/mnt/c/Users/Tino.Merl/Documents/repos/airbyte_fork/airbyte-integrations/connectors/source-linkedin-pages - SAT run - 7dad80e - FAILED"}}

============================================================================================ warnings summary ============================================================================================
../../bases/source-acceptance-test/source_acceptance_test/config.py:246: 26 warnings
airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py: 1 warning
/mnt/c/Users/Tino.Merl/Documents/repos/airbyte_fork/airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/config.py:246: DeprecationWarning: The 'warn' function is deprecated, use 'warning' instead
logging.warn("The acceptance-test-config.yml file is in a legacy format. Please migrate to the latest format.")

-- Docs: https://docs.pytest.org/en/stable/warnings.html
======================================================================================== short test summary info =========================================================================================
SKIPPED [1] ../../bases/source-acceptance-test/source_acceptance_test/plugin.py:63: Skipping TestIncremental.test_two_sequential_reads: not found in the config.
FAILED ../../bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestSpec::test_backward_compatibility[inputs0] - source_acceptance_test.utils.backward_compatibility.NonBackwardCo...
FAILED ../../bases/source-acceptance-test/source_acceptance_test/tests/test_core.py::TestDiscovery::test_backward_compatibility[inputs0] - docker.errors.ContainerError: Command 'discover --config /da...

Results (119.29s):
24 passed
1 failed
- airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/tests/test_core.py:169 TestSpec.test_backward_compatibility[inputs0]
1 error

@github-actions github-actions bot added the area/connectors Connector related issues label Nov 4, 2022
@CLAassistant
Copy link

CLAassistant commented Nov 4, 2022

CLA assistant check
All committers have signed the CLA.

@vincentkoc
Copy link
Contributor

@tinomerl thanks for your contribution, I’m one of the Airbyte maintainers and will take a quick look at your submission.

vincentkoc
vincentkoc previously approved these changes Nov 5, 2022
@github-actions github-actions bot added the area/documentation Improvements or additions to documentation label Nov 5, 2022
@vincentkoc vincentkoc self-assigned this Nov 5, 2022
@vincentkoc vincentkoc dismissed their stale review November 6, 2022 23:30

unit test issues, will recheck

@vincentkoc
Copy link
Contributor

vincentkoc commented Nov 6, 2022

/test connector=connectors/source-linkedin-pages

🕑 connectors/source-linkedin-pages https://github.com/airbytehq/airbyte/actions/runs/3406469631
❌ connectors/source-linkedin-pages https://github.com/airbytehq/airbyte/actions/runs/3406469631
🐛 https://gradle.com/s/twfl6l4ixheoe

Build Failed

Test summary info:

=========================== short test summary info ============================
FAILED test_core.py::TestSpec::test_config_match_spec[inputs0] - Failed: Conf...
FAILED test_core.py::TestConnection::test_check[inputs0] - AssertionError: as...
FAILED test_core.py::TestDiscovery::test_discover[inputs0] - docker.errors.Co...
ERROR test_core.py::TestDiscovery::test_defined_cursors_exist_in_schema[inputs0]
ERROR test_core.py::TestDiscovery::test_defined_refs_exist_in_schema[inputs0]
ERROR test_core.py::TestDiscovery::test_defined_keyword_exist_in_schema[inputs0-allOf]
ERROR test_core.py::TestDiscovery::test_defined_keyword_exist_in_schema[inputs0-not]
ERROR test_core.py::TestDiscovery::test_primary_keys_exist_in_schema[inputs0]
ERROR test_core.py::TestDiscovery::test_streams_has_sync_modes[inputs0] - doc...
ERROR test_core.py::TestDiscovery::test_additional_properties_is_true[inputs0]
ERROR test_core.py::TestDiscovery::test_backward_compatibility[inputs0] - doc...
ERROR test_core.py::TestBasicRead::test_read[inputs0] - docker.errors.Contain...
ERROR test_full_refresh.py::TestFullRefresh::test_sequential_reads[inputs0]
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/plugin.py:63: Skipping TestIncremental.test_two_sequential_reads: not found in the config.
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/tests/test_core.py:57: Backward compatibility tests are disabled for version 0.1.0.
======= 3 failed, 12 passed, 2 skipped, 27 warnings, 10 errors in 25.83s =======

> Task :airbyte-integrations:connectors:source-linkedin-pages:sourceAcceptanceTest FAILED

Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

See https://docs.gradle.org/7.4/userguide/command_line_interface.html#sec:command_line_warnings

Execution optimizations have been disabled for 1 invalid unit(s) of work during this build to ensure correctness.
Please consult deprecation warnings for more details.
46 actionable tasks: 33 executed, 13 up-to-date

Publishing build scan...
https://gradle.com/s/twfl6l4ixheoe

@tinomerl
Copy link
Contributor Author

tinomerl commented Nov 7, 2022

Hey @koconder, thanks for reviewing. Let me know if i can be of any help.

@sajarin sajarin added the bounty-L Maintainer program: claimable large bounty PR label Nov 7, 2022
@vincentkoc vincentkoc changed the title 🐛 Source LinkedIn Pages: fixed failing connection checks 🐛 🚨🚨 Source LinkedIn Pages: fixed failing connection checks Nov 7, 2022
@vincentkoc
Copy link
Contributor

@sajarin @marcosmarxm i think we need to update the config in github actions to match the changes in the PR. Can we please make the org id in the test config a string.

@sajarin
Copy link
Contributor

sajarin commented Nov 8, 2022

/test connector=connectors/source-linkedin-pages

🕑 connectors/source-linkedin-pages https://github.com/airbytehq/airbyte/actions/runs/3420947566
❌ connectors/source-linkedin-pages https://github.com/airbytehq/airbyte/actions/runs/3420947566
🐛 https://gradle.com/s/aaj6rmsanbql4

Build Failed

Test summary info:

=========================== short test summary info ============================
FAILED test_core.py::TestConnection::test_check[inputs0] - AssertionError: as...
FAILED test_core.py::TestBasicRead::test_read[inputs0] - docker.errors.Contai...
FAILED test_full_refresh.py::TestFullRefresh::test_sequential_reads[inputs0]
ERROR test_core.py::TestDiscovery::test_backward_compatibility[inputs0] - doc...
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/plugin.py:63: Skipping TestIncremental.test_two_sequential_reads: not found in the config.
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/tests/test_core.py:71: Backward compatibility tests are disabled for version 0.1.0.
======== 3 failed, 21 passed, 2 skipped, 27 warnings, 1 error in 22.59s ========

@leminhds
Copy link

hi, any plan to merge this soon?

@vincentkoc
Copy link
Contributor

vincentkoc commented Nov 11, 2022

@sajarin @marcosmarxm CI is returning the following error:

"error": ***"message": "The token used in the request has expired",

We need to update the sandbox credentials to pass this change for LinkedIn pages

@vincentkoc
Copy link
Contributor

@leminhds our automated unit testing is failing, we will need to correct this before we can finalise the PR. Please hold whilst we review the PR and finalise the tests.

@tinomerl
Copy link
Contributor Author

Hey @koconder @marcosmarxm @sajarin any updates on this pr? can i help out in any way?

@marcosmarxm
Copy link
Member

Hello 👋:skin-tone-2: and thank you for your contribution!

Airbyte has instituted a code freeze between 19 and 30 December, to make sure there are no disruptions during the holidays.
Because of this, reviewing and merging your contribution may take longer than usual.
We apologize for the delay, but we want everyone to have a quiet and happy holiday.

If you have any questions or need further clarification, please don't hesitate to ping via Slack.

@firehist
Copy link

Thanks a lot @tinomerl and Airbyte Team.

As holidays (hopefully) was nice for everyone regarding airbyte usage, is there any plan on the review of this request?

Thanks a lot.

@natalyjazzviolin
Copy link
Contributor

@koconder I've put in a request for new credentials to run the integration tests!

@vincentkoc
Copy link
Contributor

vincentkoc commented Jan 21, 2023

/test connector=connectors/source-linkedin-pages

🕑 connectors/source-linkedin-pages https://github.com/airbytehq/airbyte/actions/runs/3974371912
❌ connectors/source-linkedin-pages https://github.com/airbytehq/airbyte/actions/runs/3974371912
🐛 https://gradle.com/s/rbopqpigaoylq

Build Failed

Test summary info:

=========================== short test summary info ============================
FAILED test_core.py::TestConnection::test_check[inputs0] - AssertionError: as...
FAILED test_core.py::TestBasicRead::test_read[inputs0] - docker.errors.Contai...
FAILED test_full_refresh.py::TestFullRefresh::test_sequential_reads[inputs0]
ERROR test_core.py::TestDiscovery::test_backward_compatibility[inputs0] - doc...
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/plugin.py:63: Skipping TestIncremental.test_two_sequential_reads: not found in the config.
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/tests/test_core.py:103: Backward compatibility tests are disabled for version 0.1.0.
======== 3 failed, 23 passed, 2 skipped, 29 warnings, 1 error in 23.16s ========

@sh4sh
Copy link
Contributor

sh4sh commented Feb 7, 2023

Sorry for the delay here, just need to sign off on the last step and the creds will be updated.

@LuliRib
Copy link
Contributor

LuliRib commented Feb 27, 2023

Hi, any update? Can I help in any way?

@tinomerl
Copy link
Contributor Author

Hey @marcosmarxm, @sh4sh, @koconder

can this pr be merged soon? it's almost 4 months now for what should've been a small fix.

@marcosmarxm
Copy link
Member

marcosmarxm commented Mar 13, 2023

/test connector=connectors/source-linkedin-pages

🕑 connectors/source-linkedin-pages https://github.com/airbytehq/airbyte/actions/runs/4407855048
❌ connectors/source-linkedin-pages https://github.com/airbytehq/airbyte/actions/runs/4407855048
🐛 https://gradle.com/s/pjzxp4n2nvxqy

Build Failed

Test summary info:

=========================== short test summary info ============================
ERROR test_core.py::TestDiscovery::test_backward_compatibility[inputs0] - doc...
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/connector_acceptance_test/plugin.py:63: Skipping TestIncremental.test_two_sequential_reads: not found in the config.
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/connector_acceptance_test/tests/test_core.py:109: Backward compatibility tests are disabled for version 0.1.0.
=================== 32 passed, 2 skipped, 1 error in 33.14s ====================

@marcosmarxm
Copy link
Member

@tinomerl I'm having some problems with our CI to make the final test pass. Waiting some return from the engineer team about the topic.

@tinomerl
Copy link
Contributor Author

@marcosmarxm thanks for the info and the tests. let me know if i can be of any help.

@marcosmarxm
Copy link
Member

marcosmarxm commented Mar 16, 2023

/test connector=connectors/source-linkedin-pages

🕑 connectors/source-linkedin-pages https://github.com/airbytehq/airbyte/actions/runs/4439505517
❌ connectors/source-linkedin-pages https://github.com/airbytehq/airbyte/actions/runs/4439505517
🐛

Build Passed

Test summary info:

=========================== short test summary info ============================
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/connector_acceptance_test/plugin.py:63: Skipping TestIncremental.test_two_sequential_reads: not found in the config.
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/connector_acceptance_test/tests/test_core.py:109: Backward compatibility tests are disabled for version 0.1.0.
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/connector_acceptance_test/tests/test_core.py:518: Backward compatibility tests are disabled for version 0.1.0.
======================== 32 passed, 3 skipped in 34.00s ========================

@marcosmarxm
Copy link
Member

marcosmarxm commented Mar 16, 2023

/publish connector=connectors/source-linkedin-pages

🕑 Publishing the following connectors:
connectors/source-linkedin-pages
https://github.com/airbytehq/airbyte/actions/runs/4440420317


Connector Did it publish? Were definitions generated?
connectors/source-linkedin-pages

if you have connectors that successfully published but failed definition generation, follow step 4 here ▶️

Copy link
Member

@marcosmarxm marcosmarxm left a comment

Choose a reason for hiding this comment

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

Thanks @tinomerl

@marcosmarxm marcosmarxm enabled auto-merge (squash) March 16, 2023 19:04
@marcosmarxm marcosmarxm disabled auto-merge March 16, 2023 19:04
@marcosmarxm
Copy link
Member

@tinomerl I'm trying to get the final approval from our connector team because of the backward compatibility issue.

@marcosmarxm
Copy link
Member

Merged code at #24161

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 bounty bounty-L Maintainer program: claimable large bounty PR community connectors/source/linkedin-pages
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

Source LinkedIn Pages: isn't able to pass connection tests