Skip to content

Commit

Permalink
TDL-10077: Improve Stripe Reliability (#118)
Browse files Browse the repository at this point in the history
* TDL-14058: Update SDK and api version (#105)

* Updated SDK and API version

* Added expand parameter for more streams

* Updated replication key for invoices

* added backward compability for invoice bookmark

* Added unit test and code coverage report in circleci

* Resolved unit test failure

* Updated stripe SDK to latest version

* Running all test for testing

* updated stripe version in config.yml

* Running all test for testing

* Running all test for testing

* Running all test for testing

* Updated base class of tap_tester to handle replication key change of invoices

* Reverted back config.yml to run dependant tests

* Reverted back config.yml to run dependant tests

* Updated all_field test case

* Added back payout stream

* Added comments in test case

* Fixed key in bookmark for invoice_line_items

* Fixed key in bookmark for invoice_line_items in get_bookmark

* Fixed charge stream for all_field test case

* Fixed payouts stream for all_field test case

* Updated amount value

* Resolved circleci error

* Fiexed all_field test case�[D�[D�[D�[D�[D�[D�[D�[D�[D�[D�[D�[D�[D�[D�[D�[D�[D�[D�[D�[D�[D�[D�[�[�[3~�[�[C�[�[C�[C�[C�[C�[C�[C�[C�[C�[C�[C�[C�[C�[C�[C�[C�[xed invoice_line_item failure in all_field test case

* Fix the build_daily workflow definition

* Resolved review comment

* Updated all_field test case

* Updated test case for customer and invoice_line_item stream

* Updated util.py

* Removed fields from missing fields

* fixed subscription_items stream

* Resolved review comment and added function for get and write bookmark

* Updated code comment

* Tdl 5894 update invoices stream (#115)

* initial commit

* added back for all streams

* resolved comments

* fixed cci errors

* fixed typo in comment

* updated comment

* fixed typo in function

* fixed failures

* fixed error

* resolved failure for discount

* updated discount schema

* added bugtracker

* Tdl 6026 Modify 'customer' stream on 'test_all_fields.py' to pass (#109)

* Initial commit

* Updated util.py �[D�[D�[D�[D�[D�[D�[D�[DAPI version to latest in util.py

* Added support of tax_ids field

* Updated discount schema

* Updated datatype of percent_off field.

* Tdl 6597 Modify 'product' stream on 'test_all_fields.py' to pass (#108)

* Initial commit

* Added back schema_keys

* Uncommented expected assertion

* Removed skus field from schema

* TDL-6587 Modify 'invoice_line_items' stream on 'test_all_fields.py' to pass (#112)

* Initial commit

* Updated schema file

* Removed price field from schema

* Removed tax_rates from schema

* Removed extra fields from schema

* Updated schema file

* Added metadata in schema

* Added invoice_line_items in KNOWN_FAILING_FIELDS

* Updated price value�[D�[D�[D�[D�[Drecord value

* Updated all_field test case

* Merged changes

* Uncommented code

* Updated code comment

* TDL-5992 modify subscription items stream (#114)

* initial commit with subscription_items stream

* reverted back to all streams

* resolved pylint

* testing for subscription_items only

* resolved error

* added back for all streams

* resolved cci errors

* added commnets

* added automatic fields for subscription items

* removed updated from the schema

* removed empty line and updated base

* resolved comments

* chahnged updated

* reverted changes

* reverted changes

* removed updated from subscription_items

* reverted a type change

Co-authored-by: prijendev <prijen.khokhani@crestdatasys.com>

* TDL-17429 Revert back tiers field datatype conversion (#117)

* Initial commit for dict to stripe object conversion

* Resolved pylint error

* Updated test cases

* Added condtion to check dict type

Co-authored-by: prijendev <prijen.khokhani@crestdatasys.com>
Co-authored-by: namrata270998 <namrata.brahmbhatt@crestdatasys.com>
Co-authored-by: namrata270998 <75604662+namrata270998@users.noreply.github.com>
Co-authored-by: Prijen Khokhani <88327452+prijendev@users.noreply.github.com>

* Added tax_type and metadata in subcriptions_items

* added the proration_details due to cci failure

* TDL-17880 Add missing test cases (#131)

* Added event_type field in all schemas

* Added test cases for event updates

* Updated __init__ file

* Updated event_type field to updated_by_event_type field name

* Reverted back config.yml file changes

* Updated event_type field in all_field test case.

* Added missing test case assertion

* fixed circleci error and updated tests

* updated integration tests to resolve cci failures

* removed the unused variables

* removed duplicate code

* resolved comments

* added more comments

* added new map for intermittent missing fields

* updated schema missing fields map and changed the union

* added proper comment

Co-authored-by: prijendev <prijen.khokhani@crestdatasys.com>
Co-authored-by: nevilparikh_crest <nevil.parikh@crestdatasys.com>

* Tdl 13149 sync payment intent (#127)

* Initial commit for payment_intent stream

* Updated bookmark test case.

* Updated expand parameter for charge stream in utils.py

* Updated utils.py

* Removed payment_intent object from charge stream

* Removed extra field from charges schema

* Added card field in schema

* Updated transfer_group and application_fee_amount field type

* Updated transfer_group field

* Updated datatype of destination field

* Updated transfer_data

* Added payment record creation

* Resolved test case error

* Resloved all fields test case error

* Resolved test case error

* Added comments in test case.

Co-authored-by: namrata270998 <namrata.brahmbhatt@crestdatasys.com>

* Tdl 13711 upgrade json schema (#124)

* updated the transform_usage type and integration tests

* added plan back to the sub_items

* removed the workaround for the invoices 'created' field

* updated transform_usage type

* added code comment

* TDL 15120 add event type field in schemas (#123)

* Added event_type field in all schemas

* Added test cases for event updates

* Updated __init__ file

* Updated event_type field to updated_by_event_type field name

* Reverted back config.yml file changes

* Updated event_type field in all_field test case.

Co-authored-by: namrata270998 <namrata.brahmbhatt@crestdatasys.com>

* updated charge.json

* TDL-14354 log request_id (#135)

* logged request_id for the sdk calls

* unittests for debug log

* changed the logic of new_list and updated unittests

* added code comments

* rsolved pylint error

* resolved cci failures

* resolved pylint errors

* rsolved pylint

* changed the function overwritten for logging request id

* resolved PR review comments

* skipped schema missing fields to pass the cci

* fixed cci issue

* added schema missing fields

* added receipt_url in fickle fields

* resolved PR comments

* TDL-17879 added authentication before discovery mode and unittests (#128)

* added authentication before discovery mode and unittests

* resolved comments

* fixed spelling error

* added schema missing fields

* added comment for pagination test

* added detailed comment

* added ticket it

* fixed circleci errors

* Tdl 17878 implement request timeout and retry (#126)

* added configurable request timeout with default as 5 minutes

* added comments

* added schema missing fields missing from schema

* fixed cci error

* added timeout in readme

* TDL-9856: ensure setup includes non-automatic balance transactions (#129)

* added test case to verify we sync only automatic payout's transactions

* added more comments

* resolved PR review comments

* resolve CCi error

* added doc-string in test_automatic_payout_transactions

* resolve CCi error

* resolve CCi error

* resolve CCi error

* resolve CCi error

* added try-catch in test_automatic_payout_transactions

Co-authored-by: namrata270998 <namrata.brahmbhatt@crestdatasys.com>

* TDL-16966: Handle deleted invoice_line_items returned from the events updates endpoint (#137)

* Added retry logic for deleted invoice line items

* Resolved pylint error

* Added backoff over child also

* added code to skip deleted invoice line item call

* resolved unittest failure

* Updated all field test case.

* Reverted back changes in base.py

* Updated all field test case to pass cci.

Co-authored-by: harshpatel4_crest <harsh.patel4@crestdatasys.com>
Co-authored-by: namrata270998 <namrata.brahmbhatt@crestdatasys.com>

* TDL-15168: Use `unique_line_item_id` for invoice updates' lines value instead of `id` (#134)

* updated id field for invoice line items

* resolve integration test error

* updated code to handle null invoice_item for invoice line items

* resolve review comments

* resolved CCi failure

Co-authored-by: namrata270998 <namrata.brahmbhatt@crestdatasys.com>

* TDL-9801: `payouts` incorrectly mapped to `transfers` object results in transfer objects replicated by payouts stream (#133)

* added payout with transfer for payout events

* updated config.yml file

* removed unnecessary files

* resolved integration test error

* resolved integration test error

* resolved review comments

* fix integration test and run all fields test only

* fix cci failure

* fix cci failure

* fix cci failure

* fix cci failure, run all tests

Co-authored-by: namrata270998 <namrata.brahmbhatt@crestdatasys.com>

* Tdl 17902 fix parent child relationship (#130)

* update child bookmark and make child stream  independent

* fixed pylint

* resolved PR review comments

* added function comments

* added child streams to bookmarks test and added a comment to all_fields

* resolved cci error

* resolved comments

* resolved comments

* resolved PR review comments

* fixed circleci errors

* skipped schema missing fields and removed extra checks for nested fields

* skipped receipt_url as it keeps changing every time in all_fields

* updated function name in unittest and resolved pylint error (#140)

Updated function names of unittest after all PR merge.

* TDL-18217 change lookback window logic (#138)

* added configurable lookback window

* added code comments

* resolved comments

* resolved comments

* changed lookback and added integration test

* added new map for intermittently missing fields

* resolved events stream lookback issue

* updated schema missing fields map

* added lookback test in config.yml

* initial commit

* configurable lookback window for bothstreams with updated tests

* resolved cci issue and added new assertion

* fixed cci issues

* addentsd comme

* added lookback test in all_tests_run

* changed to same default lookback for both streams

* resolved PR review comments

* fixed typo error

* added code comments

* changed the lookback loguc acc to Kyle's suggestions

* updated comments

* float value in lookback

* removed float as giving error

* handled 0 scenario for lookback

* handled string 0 and fixed cci

* resolved comments

* skipped new fields not present in schema fields to fix cci

* resolved comments

* added comments in unittests

* added lookback in readme

* updated debug with %s instead of f-string

* updated unittests for the logger statement

* removed the timedelta from start_date in lookback_window test

* added all_fields in lookback test deoendency

* updated the configurable lookback window test

* TDL-19384 optimize logic for parent child relationship to be independent (#141)

* initial commit with optimized logic for parent child streams

* fixed issues in the invoices and invoice_line_items sync

* fixed pylint

* updated unittests

* TDL-19384: Added Sub Stream check

* fixed unittests

* resolved PR comments and fix cci issues

* updated invoice_line_item to line_item

* Updated the code comments

* fixed typo

* updated code comments and added more unittests

* resolved pylint

* removed uwanted comments

* resolved PR comments

* resolved PR comments

* resolved PR review comments

* added integration test for only parent

* resolved PR comments

* skipped some newly generated fields from all_fields

* added failing field as missing nested field

Co-authored-by: dbshah1212 <dhruvin.shah@crestdatasys.com>

* removed skipped fields from SCHEMA_MISSING_FIELDS

* added missing fields in skipped fields

Co-authored-by: savan-chovatiya <80703490+savan-chovatiya@users.noreply.github.com>
Co-authored-by: namrata270998 <namrata.brahmbhatt@crestdatasys.com>
Co-authored-by: namrata270998 <75604662+namrata270998@users.noreply.github.com>
Co-authored-by: nevilparikh_crest <nevil.parikh@crestdatasys.com>
Co-authored-by: Harsh <80324346+harshpatel4crest@users.noreply.github.com>
Co-authored-by: harshpatel4_crest <harsh.patel4@crestdatasys.com>
Co-authored-by: dbshah1212 <dhruvin.shah@crestdatasys.com>
  • Loading branch information
8 people authored Jul 7, 2022
1 parent cbdd805 commit bba09e0
Show file tree
Hide file tree
Showing 45 changed files with 5,977 additions and 2,013 deletions.
38 changes: 34 additions & 4 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,13 @@ jobs:
name: 'Unit Tests'
command: |
source /usr/local/share/virtualenvs/tap-stripe/bin/activate
nosetests tests/unittests
pip install coverage
nosetests --with-coverage --cover-erase --cover-package=tap_stripe --cover-html-dir=htmlcov tests/unittests
coverage html
- store_test_results:
path: test_output/report.xml
- store_artifacts:
path: htmlcov
run_integration_test:
parameters:
file:
Expand All @@ -86,12 +92,12 @@ jobs:
# easier, emit an xUnit report and let Circle tell you what
# failed.
name: 'Integration Testing'
no_output_timeout: 30m
no_output_timeout: 45m
command: |
source /usr/local/share/virtualenvs/tap-stripe/bin/activate
source /usr/local/share/virtualenvs/tap-tester/bin/activate
source /usr/local/share/virtualenvs/dev_env.sh
pip install 'stripe==2.42.0'
pip install 'stripe==2.64.0'
run-test --tap=${CIRCLE_PROJECT_REPONAME} tests/test_<< parameters.file >>.py
- slack/notify-on-failure:
only_for_branches: master
Expand Down Expand Up @@ -208,13 +214,37 @@ workflows:
file: bookmarks
requires:
- 'Testing full_replication'
- run_integration_test:
name: 'Testing configurable_lookback_window'
context:
- circleci-user
- tier-1-tap-user
file: configurable_lookback_window
requires:
- 'Testing all_fields'
- run_integration_test:
name: 'Testing parent_child_independent'
context:
- circleci-user
- tier-1-tap-user
file: parent_child_independent
requires:
- 'Testing all_fields'
- run_integration_test:
name: 'Testing automatic_payout_transactions'
context:
- circleci-user
- tier-1-tap-user
file: automatic_payout_transactions
requires:
- 'Testing all_fields'
- build:
context:
- circleci-user
- tier-1-tap-user
requires:
- 'Testing bookmarks'
build_daily:
build_daily:
<<: *commit_jobs
triggers:
- schedule:
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@ Create a config file containing the stripe credentials, e.g.:
{
"client_secret": "sk_live_xxxxxxxxxxxxxxxxxxxxxxxx",
"account_id": "acct_xxxxxxxxxxxxxxxx",
"start_date": "2017-01-01T00:00:00Z"
"start_date": "2017-01-01T00:00:00Z",
"request_timeout": 300,
"lookback_window": 600
}
```

Expand Down
5 changes: 3 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,13 @@
py_modules=["tap_stripe"],
install_requires=[
"singer-python==5.5.1",
"stripe==2.10.1",
"stripe==2.64.0",
],
extras_require={
'test': [
'pylint==2.7.2',
'nose==1.3.7'
'nose==1.3.7',
'coverage'
],
'dev': [
'ipdb',
Expand Down
Loading

0 comments on commit bba09e0

Please sign in to comment.