Summary
The user is encountering errors while running integration tests for an updated QuickBooks community connector. The error message indicates an issue with attribute evaluation in the code.
Question
I am working on updating the community connector for QuickBooks to include two streams, CreditCardPayments
and GeneralLedger
that are not included in the current connector’s definitions. Steps I have taken so far:
• Cloned repo and modified the manifest.yaml
file to include the missing streams
• Created the secrets/config.json
which is required for integration testing
• Built a local development container with airbyte-ci connectors --name source-quickbooks build
• Built an image with my changes by creating a Dockerfile in the aribyte-integrations/connectors/source-quickbooks
directory and running sudo docker build -t airbyte/source-quickbooks:dev .
• Ran integration tests using the above secrets/config.json
to validate my mainfest.yaml
configuration by running docker run --rm -v $(pwd)/secrets:/secrets airbyte/source-quickbooks:dev check --config /secrets/config.json
When the integration test completes I receive the following errors:
Traceback (most recent call last):
File \"/usr/local/lib/python3.10/site-packages/airbyte_cdk/sources/declarative/checks/check_stream.py\", line 42, in check_connection
stream_is_available, reason = availability_strategy.check_availability(stream, logger, source)
File \"/usr/local/lib/python3.10/site-packages/airbyte_cdk/sources/streams/http/availability_strategy.py\", line 50, in check_availability
get_first_record_for_slice(stream, stream_slice)
File \"/usr/local/lib/python3.10/site-packages/airbyte_cdk/sources/streams/utils/stream_helper.py\", line 40, in get_first_record_for_slice
return next(records_for_slice)
File \"/usr/local/lib/python3.10/site-packages/airbyte_cdk/sources/declarative/declarative_stream.py\", line 126, in read_records
yield from self.retriever.read_records(self.get_json_schema(), stream_slice)
File \"/usr/local/lib/python3.10/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py\", line 339, in read_records
self.cursor.close_slice(_slice, most_recent_record_from_slice)
File \"/airbyte/integration_code/source_quickbooks/components.py\", line 72, in close_slice
most_recent_record=LastRecordDictProxy(most_recent_record, {self.cursor_field.eval(self.config): \"MetaData/LastUpdatedTime\"}),
AttributeError: 'str' object has no attribute 'eval'
"
}}```
Does anybody have any experience working with this build pipeline that might be willing to help me through these issues?
<br>
---
This topic has been created from a Slack thread to give it more visibility.
It will be on Read-Only mode here. [Click here](https://airbytehq.slack.com/archives/C021JANJ6TY/p1725811108965039) if you want
to access the original thread.
[Join the conversation on Slack](https://slack.airbyte.com)
<sub>
["quickbooks", "community-connector", "integration-test", "error", "attribute-evaluation"]
</sub>