diff --git a/.github/FUNDING.yaml b/.github/FUNDING.yaml deleted file mode 100644 index 977330d4..00000000 --- a/.github/FUNDING.yaml +++ /dev/null @@ -1,3 +0,0 @@ -github: juftin -custom: - - https://www.buymeacoffee.com/juftin diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 838305b3..c1f7c551 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -45,5 +45,7 @@ jobs: - name: Test Suite run: | echo "::add-matcher::.github/matchers/python.json" - hatch run test tests/ --vcr-record=none + hatch run test echo "::remove-matcher owner=python::" + env: + VCR_RECORD_MODE: none diff --git a/lunchable/models/crypto.py b/lunchable/models/crypto.py index 8f80731c..37cb371c 100644 --- a/lunchable/models/crypto.py +++ b/lunchable/models/crypto.py @@ -57,7 +57,9 @@ class CryptoObject(LunchableModel): ) currency: Optional[str] = Field(description="Abbreviation for the cryptocurrency") status: Optional[str] = Field(description=_status_description) - institution_name: str = Field(description="Name of provider holding the asset") + institution_name: Optional[str] = Field( + default=None, description="Name of provider holding the asset" + ) created_at: datetime.datetime = Field(description=_created_at_description) diff --git a/lunchable/models/transactions.py b/lunchable/models/transactions.py index 50ba10b9..bce8a314 100644 --- a/lunchable/models/transactions.py +++ b/lunchable/models/transactions.py @@ -185,7 +185,9 @@ class TransactionSplitObject(TransactionBaseObject): """ date: datetime.date = Field(description=_date_description) - category_id: int = Field(description=_category_id_description) + category_id: Optional[int] = Field( + default=None, description=_category_id_description + ) notes: Optional[str] = Field(description=_notes_description) amount: float = Field(description=_amount_description) diff --git a/lunchable/plugins/base/base_app.py b/lunchable/plugins/base/base_app.py index 35cca160..d9d49bff 100644 --- a/lunchable/plugins/base/base_app.py +++ b/lunchable/plugins/base/base_app.py @@ -472,7 +472,7 @@ def __builtin_data_models__(self) -> List[LunchableDataModel]: ), ] - def refresh_transactions( + def refresh_transactions( # type: ignore[override] self, start_date: Optional[datetime.date] = None, end_date: Optional[datetime.date] = None, diff --git a/pyproject.toml b/pyproject.toml index 77371db9..6ce563c7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,7 +70,7 @@ dependencies = [ "pytest~=7.3.1", "pytest-cov~=4.0.0", "pytest-mock~=3.10.0", - "pytest-vcr~=1.0.2", + "vcrpy~=5.1.0", # Tooling "black~=23.3.0", "ruff~=0.0.261", @@ -92,8 +92,6 @@ dependencies = [ features = [ "all" ] -path = ".venv" -pre-install-commands = ["pip install -U --no-deps -r requirements/dev.txt"] [tool.hatch.envs.default.env-vars] LUNCHMONEY_ACCESS_TOKEN = "{env:LUNCHMONEY_ACCESS_TOKEN:LUNCHMONEY_ACCESS_TOKEN_PLACEHOLDER}" @@ -181,7 +179,8 @@ ignore = [ "PLR0913", # Too many arguments to function call "PLW2901", # Outer for loop variable overwritten by inner assignment target "RUF001", # String contains ambiguous unicode character `’` - "PLR2004" # Magic value used in comparison + "PLR2004", # Magic value used in comparison + "RUF012" # Mutable class attributes should be annotated with `typing.ClassVar` ] select = [ "E", # pycodestyle errors diff --git a/requirements/dev.txt b/requirements/dev.txt index ac85ae15..3d18f9ff 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -196,7 +196,9 @@ coverage[toml]==7.2.5 \ --hash=sha256:f6f5cab2d7f0c12f8187a376cc6582c477d2df91d63f75341307fcdcb5d60303 \ --hash=sha256:f81c9b4bd8aa747d417407a7f6f0b1469a43b36a85748145e144ac4e8d303cb5 \ --hash=sha256:f99ef080288f09ffc687423b8d60978cf3a465d3f404a18d1a05474bd8575a47 - # via pytest-cov + # via + # coverage + # pytest-cov docutils==0.18.1 \ --hash=sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c \ --hash=sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06 @@ -567,7 +569,6 @@ pytest==7.3.1 \ # lunchable (pyproject.toml) # pytest-cov # pytest-mock - # pytest-vcr pytest-cov==4.0.0 \ --hash=sha256:2feb1b751d66a8bd934e5edfa2e961d11309dc37b73b0eabe73b5945fee20f6b \ --hash=sha256:996b79efde6433cdbd0088872dbc5fb3ed7fe1578b68cdbba634f14bb8dd0470 @@ -576,10 +577,6 @@ pytest-mock==3.10.0 \ --hash=sha256:f4c973eeae0282963eb293eb173ce91b091a79c1334455acfac9ddee8a1c784b \ --hash=sha256:fbbdb085ef7c252a326fd8cdcac0aa3b1333d8811f131bdcc701002e1be7ed4f # via lunchable (pyproject.toml) -pytest-vcr==1.0.2 \ - --hash=sha256:23ee51b75abbcc43d926272773aae4f39f93aceb75ed56852d0bf618f92e1896 \ - --hash=sha256:2f316e0539399bea0296e8b8401145c62b6f85e9066af7e57b6151481b0d6d9c - # via lunchable (pyproject.toml) python-dateutil==2.8.2 \ --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 @@ -672,9 +669,7 @@ ruff==0.0.264 \ six==1.16.0 \ --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 - # via - # python-dateutil - # vcrpy + # via python-dateutil snowballstemmer==2.2.0 \ --hash=sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1 \ --hash=sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a @@ -775,10 +770,10 @@ urllib3==1.26.15 \ --hash=sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305 \ --hash=sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42 # via requests -vcrpy==4.2.1 \ - --hash=sha256:7cd3e81a2c492e01c281f180bcc2a86b520b173d2b656cb5d89d99475423e013 \ - --hash=sha256:efac3e2e0b2af7686f83a266518180af7a048619b2f696e7bad9520f5e2eac09 - # via pytest-vcr +vcrpy==5.1.0 \ + --hash=sha256:605e7b7a63dcd940db1df3ab2697ca7faf0e835c0852882142bafb19649d599e \ + --hash=sha256:bbf1532f2618a04f11bce2a99af3a9647a32c880957293ff91e0a5f187b6b3d2 + # via lunchable (pyproject.toml) wheel==0.40.0 \ --hash=sha256:cd1196f3faee2b31968d626e1731c94f99cbdb67cf5a46e4f5656cbee7738873 \ --hash=sha256:d236b20e7cb522daf2390fa84c55eea81c5c30190f90f29ae2ca1ad8355bf247 diff --git a/tests/conftest.py b/tests/conftest.py index d24dc962..e9cec3aa 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -3,10 +3,12 @@ """ import datetime -from os import getenv -from typing import Dict, List +import os +import pathlib +from typing import List import pytest +from vcr import VCR from lunchable import LunchMoney from lunchable.models import TransactionObject @@ -28,59 +30,6 @@ def obscure_start_date() -> datetime.datetime: return obscure_start_date_object -def scrub_string(string, replacement=""): - """ - Nested Scrubbing Function - """ - - def before_record_response(response): - body = response["body"]["string"] - sensitive_strings = string.split(",") - try: - sensitive_strings.remove("") - except ValueError: - pass - for string_part in sensitive_strings: - string_part = string_part.strip() - if isinstance(body, bytes): - try: - body = body.decode("utf-8").replace(string_part, replacement) - body = str.encode(body) - except UnicodeDecodeError: - pass - else: - body = body.replace(string, replacement) - response["body"]["string"] = body - return response - - return before_record_response - - -@module_scope -def vcr_config() -> Dict[str, list]: - """ - VCR Cassette Privacy Enforcer - - This fixture ensures the API Credentials are obfuscated - - Returns - ------- - Dict[str, list]: - """ - return { - "filter_headers": [("authorization", "XXXXXXXXXX")], - "filter_query_parameters": [("user", "XXXXXXXXXX"), ("token", "XXXXXXXXXX")], - "before_record_response": scrub_string( - getenv("SENSITIVE_REQUEST_STRINGS", ""), "XXXXXXXXXX" - ), - } - - -# Decorator Object to Use pyvcr Cassettes on Unit Tests (see `pytest-vcr`) -# pass `--vcr-record=none` to pytest CI runs to ensure new cassettes are generated -lunchable_cassette = pytest.mark.vcr(scope="module") - - @pytest.fixture def lunch_money_obj() -> LunchMoney: """ @@ -102,14 +51,14 @@ def test_transactions() -> List[TransactionObject]: """ transaction_dict_1 = { "amount": 1.0, - "asset_id": 23043, - "category_id": 229134, + "asset_id": 49335, + "category_id": 658761, "currency": "usd", "date": "2021-09-19", "external_id": None, "fees": None, "group_id": None, - "id": 55907882, + "id": 546434801, "is_group": False, "notes": "Test Transaction 1", "original_name": "Test 1", @@ -132,7 +81,7 @@ def test_transactions() -> List[TransactionObject]: "external_id": None, "fees": None, "group_id": None, - "id": 55907976, + "id": 546452296, "is_group": False, "notes": "Test Transaction 2", "original_name": "Test 2", @@ -155,7 +104,7 @@ def test_transactions() -> List[TransactionObject]: "external_id": None, "fees": None, "group_id": None, - "id": 55907977, + "id": 546434806, "is_group": False, "notes": "Test Transaction 3", "original_name": "Test 3", @@ -173,3 +122,34 @@ def test_transactions() -> List[TransactionObject]: transaction_2 = TransactionObject(**transaction_dict_2) transaction_3 = TransactionObject(**transaction_dict_3) return [transaction_1, transaction_2, transaction_3] + + +########################################################### +# VCR Configuration : Offload Epic API Calls to Cassettes # +########################################################### + + +def path_transformer(path: str) -> str: + """ + Cassette Path Transformer + """ + suffix = ".yaml" + if not path.endswith(suffix): + path = path + suffix + cassette_path = pathlib.Path(path) + cassette_path = cassette_path.parent / "cassettes" / cassette_path.name + return str(cassette_path) + + +vcr = VCR( + filter_headers=(("authorization", "XXXXXXXXXX"),), + filter_query_parameters=(("user", "XXXXXXXXXX"), ("token", "XXXXXXXXXX")), + decode_compressed_response=True, + path_transformer=path_transformer, + record_mode=os.getenv("VCR_RECORD_MODE", "once"), +) + + +# Decorator Object to Use pyvcr Cassettes on Unit Tests +# pass `--vcr-record=none` to pytest CI runs to ensure new cassettes are generated +lunchable_cassette = vcr.use_cassette diff --git a/tests/models/cassettes/test_add_to_category_group.yaml b/tests/models/cassettes/test_add_to_category_group.yaml index 2d82c6ff..9dc94374 100644 --- a/tests/models/cassettes/test_add_to_category_group.yaml +++ b/tests/models/cassettes/test_add_to_category_group.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"category_ids": [343125], "new_categories": ["Another Another Test Category"]}' + body: '{"category_ids": [443128], "new_categories": ["Another Another Test Category"]}' headers: Accept: - '*/*' @@ -13,27 +13,33 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.27.1 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: POST - uri: https://dev.lunchmoney.app/v1/categories/group/343124/add + uri: https://dev.lunchmoney.app/v1/categories/group/658694/add response: body: - string: '{"id":343124,"name":"Test Category Group","description":"","is_income":false,"exclude_from_budget":false,"exclude_from_totals":false,"is_group":true,"group_id":null,"children":[{"id":343126,"name":"Another Another Test Category","description":null,"created_at":"2022-06-07T19:39:33.608Z"},{"id":343125,"name":"Another Test Category","description":null,"created_at":"2022-06-07T19:37:02.688Z"},{"id":343106,"name":"Test Category","description":"Test Category Description Updated","created_at":"2022-06-07T16:31:40.780Z"}]}' + string: '{"id":658694,"name":"Test Category Group","description":"Test Category Group!!","is_income":false,"exclude_from_budget":true,"exclude_from_totals":false,"is_group":true,"group_id":null,"children":[{"id":658761,"name":"Another Another Test Category","description":null,"created_at":"2023-12-15T02:42:01.147Z","archived":false,"archived_on":null},{"id":443128,"name":"Groceries","description":"Test Category Description Updated","created_at":"2023-03-07T02:10:27.268Z","archived":false,"archived_on":null}],"archived":false,"archived_on":null}' headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive Content-Length: - - '521' + - '541' Content-Type: - application/json; charset=utf-8 Date: - - Tue, 07 Jun 2022 19:39:33 GMT + - Fri, 15 Dec 2023 02:42:01 GMT Etag: - - W/"209-CNJytM5IsDz5pPHDFW8MY9tiVtQ" + - W/"21d-JdapYXJpKm5jckYYF084zl/FWR8" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702608121&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=IhPV7bOJdhOd%2BTJ73mF%2BY5R1AE8%2BA1EFE91jTMBZ51A%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702608121&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=IhPV7bOJdhOd%2BTJ73mF%2BY5R1AE8%2BA1EFE91jTMBZ51A%3D Server: - Cowboy Vary: diff --git a/tests/models/cassettes/test_create_and_delete_transaction_group.yaml b/tests/models/cassettes/test_create_and_delete_transaction_group.yaml index a0b2e420..f28fbc00 100644 --- a/tests/models/cassettes/test_create_and_delete_transaction_group.yaml +++ b/tests/models/cassettes/test_create_and_delete_transaction_group.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"date": "2021-09-20", "payee": "Test", "notes": "Test Transaction Group", "transactions": [55907976, 55907977]}' + body: '{"date": "2023-12-14", "payee": "Test", "notes": "Test Transaction Group", "transactions": [546452296, 546434806]}' headers: Accept: - '*/*' @@ -9,31 +9,37 @@ interactions: Connection: - keep-alive Content-Length: - - '112' + - '114' Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: POST uri: https://dev.lunchmoney.app/v1/transactions/group response: body: - string: '56034791' + string: '561178199' headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive Content-Length: - - '8' + - '9' Content-Type: - application/json; charset=utf-8 Date: - - Mon, 20 Sep 2021 23:46:58 GMT + - Fri, 15 Dec 2023 02:57:39 GMT Etag: - - W/"8-G+S+rrOqUpCQgQ8Hw7AMbFQQrsM" + - W/"9-QgM8UlEG9Jko03c9j304G1eR1wE" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702609059&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=a%2FD%2FxKu%2FI8HJf1kkNWFJCRTzav%2B8PV5EZXdEDkFV7nQ%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702609059&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=a%2FD%2FxKu%2FI8HJf1kkNWFJCRTzav%2B8PV5EZXdEDkFV7nQ%3D Server: - Cowboy Vary: @@ -59,27 +65,33 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: DELETE - uri: https://dev.lunchmoney.app/v1/transactions/group/56034791 + uri: https://dev.lunchmoney.app/v1/transactions/group/561178199 response: body: - string: '{"transactions":[55907977,55907976]}' + string: '{"transactions":[546452296,546434806]}' headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive Content-Length: - - '36' + - '38' Content-Type: - application/json; charset=utf-8 Date: - - Mon, 20 Sep 2021 23:47:00 GMT + - Fri, 15 Dec 2023 02:57:40 GMT Etag: - - W/"24-lVChRyRiVqGERw6b0cY0xfzBH0U" + - W/"26-MZMWmBEzSYlditcq8Wp4EJp/buM" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702609060&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=v%2FTNRGIUsGut5fPkA5odLxpk9OeFYkVrqG1ZFEBeXVU%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702609060&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=v%2FTNRGIUsGut5fPkA5odLxpk9OeFYkVrqG1ZFEBeXVU%3D Server: - Cowboy Vary: diff --git a/tests/models/cassettes/test_create_asset.yaml b/tests/models/cassettes/test_create_asset.yaml index 66b1069c..84f4c633 100644 --- a/tests/models/cassettes/test_create_asset.yaml +++ b/tests/models/cassettes/test_create_asset.yaml @@ -13,14 +13,14 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.27.1 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: POST uri: https://dev.lunchmoney.app/v1/assets response: body: - string: '{"id":36659,"type_name":"depository","subtype_name":null,"name":"test-account-1","display_name":"Test Account #1","balance":"5.2000","balance_as_of":"2022-05-31T19:35:10.182Z","closed_on":null,"created_at":"2022-05-31T19:35:10.184Z","currency":"usd","institution_name":"Test Institution","exclude_transactions":false}' + string: '{"id":78214,"type_name":"depository","subtype_name":null,"name":"test-account-1","display_name":"Test Account #1","balance":"4.2000","balance_as_of":"2023-12-15T02:24:12.156Z","closed_on":null,"created_at":"2023-12-15T02:24:12.158Z","currency":"usd","institution_name":"Test Institution","exclude_transactions":false}' headers: Access-Control-Allow-Credentials: - 'true' @@ -31,9 +31,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Tue, 31 May 2022 19:35:10 GMT + - Fri, 15 Dec 2023 02:24:12 GMT Etag: - - W/"13d-D4mnlsiVRv09cJgVViH/qjPhhVM" + - W/"13d-I4VftM8ABzkTAssGeLYE2y4XTiQ" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702607052&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=xQy4m01Fec%2Ftq0pERUcOBacTAIiGJvX4B1DxwzkRJ8c%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702607052&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=xQy4m01Fec%2Ftq0pERUcOBacTAIiGJvX4B1DxwzkRJ8c%3D Server: - Cowboy Vary: diff --git a/tests/models/cassettes/test_create_category.yaml b/tests/models/cassettes/test_create_category.yaml index 892f6d59..9895ca8f 100644 --- a/tests/models/cassettes/test_create_category.yaml +++ b/tests/models/cassettes/test_create_category.yaml @@ -13,14 +13,14 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.27.1 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: POST uri: https://dev.lunchmoney.app/v1/categories response: body: - string: '{"category_id":343106}' + string: '{"category_id":658693}' headers: Access-Control-Allow-Credentials: - 'true' @@ -31,9 +31,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Tue, 07 Jun 2022 16:31:40 GMT + - Fri, 15 Dec 2023 02:32:23 GMT Etag: - - W/"16-g6Iljpx0H9iJFs/tRrqvW+BHBwQ" + - W/"16-ZnEdZgTnX+RwcMA5fK15qZ8ce/Y" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702607543&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=yQ2QW5jL8oIBvz3F32j5ipJbpFJs8z%2FSLeBCL2gGZXk%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702607543&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=yQ2QW5jL8oIBvz3F32j5ipJbpFJs8z%2FSLeBCL2gGZXk%3D Server: - Cowboy Vary: diff --git a/tests/models/cassettes/test_create_category_group.yaml b/tests/models/cassettes/test_create_category_group.yaml index ed2b4ae9..b6e53cb4 100644 --- a/tests/models/cassettes/test_create_category_group.yaml +++ b/tests/models/cassettes/test_create_category_group.yaml @@ -13,14 +13,14 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.27.1 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: POST uri: https://dev.lunchmoney.app/v1/categories/group response: body: - string: '{"category_id":343121}' + string: '{"category_id":658694}' headers: Access-Control-Allow-Credentials: - 'true' @@ -31,9 +31,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Tue, 07 Jun 2022 17:28:24 GMT + - Fri, 15 Dec 2023 02:32:24 GMT Etag: - - W/"16-s02Md8HtqROpuQH1ig1K4UMVhAc" + - W/"16-QagnRiI64XjF7P0O60ZwTSKAWaY" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702607544&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=RniK8WNVAIRVvFxngSDlgZr4DZle61%2FVPl1Qsd2Phig%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702607544&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=RniK8WNVAIRVvFxngSDlgZr4DZle61%2FVPl1Qsd2Phig%3D Server: - Cowboy Vary: diff --git a/tests/models/cassettes/test_delete_budget.yaml b/tests/models/cassettes/test_delete_budget.yaml index d8852960..75128167 100644 --- a/tests/models/cassettes/test_delete_budget.yaml +++ b/tests/models/cassettes/test_delete_budget.yaml @@ -13,11 +13,11 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: DELETE - uri: https://dev.lunchmoney.app/v1/budgets?start_date=2022-11-01&category_id=229137 + uri: https://dev.lunchmoney.app/v1/budgets?category_id=443127&start_date=2022-11-01 response: body: string: 'true' @@ -31,9 +31,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Mon, 20 Sep 2021 23:46:54 GMT + - Fri, 15 Dec 2023 02:31:55 GMT Etag: - W/"4-X/5TO4MPCKAyY0ipFgr6/IraRNs" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702607515&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=qdKNFnbZ1V3jxHxyZrsmx53HANFaCDyW8UVsFbofofE%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702607515&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=qdKNFnbZ1V3jxHxyZrsmx53HANFaCDyW8UVsFbofofE%3D Server: - Cowboy Vary: diff --git a/tests/models/cassettes/test_delete_category.yaml b/tests/models/cassettes/test_delete_category.yaml index c1ba166b..55474bb1 100644 --- a/tests/models/cassettes/test_delete_category.yaml +++ b/tests/models/cassettes/test_delete_category.yaml @@ -13,7 +13,7 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.27.1 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: DELETE @@ -31,9 +31,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Tue, 07 Jun 2022 16:13:22 GMT + - Fri, 15 Dec 2023 02:32:23 GMT Etag: - W/"4-X/5TO4MPCKAyY0ipFgr6/IraRNs" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702607543&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=yQ2QW5jL8oIBvz3F32j5ipJbpFJs8z%2FSLeBCL2gGZXk%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702607543&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=yQ2QW5jL8oIBvz3F32j5ipJbpFJs8z%2FSLeBCL2gGZXk%3D Server: - Cowboy Vary: diff --git a/tests/models/cassettes/test_delete_category_force.yaml b/tests/models/cassettes/test_delete_category_force.yaml index 3d4b15df..3773dc2c 100644 --- a/tests/models/cassettes/test_delete_category_force.yaml +++ b/tests/models/cassettes/test_delete_category_force.yaml @@ -13,7 +13,7 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.27.1 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: DELETE @@ -31,9 +31,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Tue, 07 Jun 2022 16:14:54 GMT + - Fri, 15 Dec 2023 02:32:24 GMT Etag: - W/"4-X/5TO4MPCKAyY0ipFgr6/IraRNs" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702607544&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=RniK8WNVAIRVvFxngSDlgZr4DZle61%2FVPl1Qsd2Phig%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702607544&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=RniK8WNVAIRVvFxngSDlgZr4DZle61%2FVPl1Qsd2Phig%3D Server: - Cowboy Vary: diff --git a/tests/models/cassettes/test_get_assets.yaml b/tests/models/cassettes/test_get_assets.yaml index 6007b638..822435bb 100644 --- a/tests/models/cassettes/test_get_assets.yaml +++ b/tests/models/cassettes/test_get_assets.yaml @@ -11,27 +11,33 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: GET uri: https://dev.lunchmoney.app/v1/assets response: body: - string: '{"assets":[{"id":21966,"type_name":"cash","subtype_name":"checking","name":"Ally Checking Import","display_name":"Ally Checking Import","balance":"1459.8200","balance_as_of":"2021-08-31T05:29:46.069Z","currency":"usd","closed_on":null,"institution_name":null,"created_at":"2021-08-31T05:24:33.936Z"},{"id":21845,"type_name":"cash","subtype_name":"digital wallet (paypal, venmo)","name":"Splitwise Balance","display_name":"Splitwise","balance":"5.2000","balance_as_of":"2021-09-16T01:21:04.667Z","currency":"usd","closed_on":null,"institution_name":"Splitwise","created_at":"2021-08-28T16:06:02.701Z"},{"id":23043,"type_name":"cash","subtype_name":"digital wallet (paypal, venmo)","name":"Test Account","display_name":"Test Account","balance":"-2.5000","balance_as_of":"2021-09-20T05:51:06.848Z","currency":"usd","closed_on":null,"institution_name":"Test","created_at":"2021-09-20T05:32:29.060Z"}]}' + string: '{"assets":[{"id":49335,"type_name":"cash","subtype_name":"checking","name":"Test Account","display_name":null,"balance":"-16513.5500","balance_as_of":"2023-03-07T02:43:48.383Z","closed_on":null,"currency":"usd","institution_name":null,"exclude_transactions":false,"created_at":"2023-03-07T02:05:23.670Z"}]}' headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive Content-Length: - - '897' + - '306' Content-Type: - application/json; charset=utf-8 Date: - - Mon, 20 Sep 2021 23:46:53 GMT + - Fri, 15 Dec 2023 02:24:11 GMT Etag: - - W/"381-GHr+VX5KccktZibZjp0bharu6DA" + - W/"132-iRGsYXgd9Lq/WtxFtW/wUKm/z0U" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702607051&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=xrm8MxWAZkRuo3Rg1wWpj49%2BSPanStLfcU6QTrTk6IU%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702607051&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=xrm8MxWAZkRuo3Rg1wWpj49%2BSPanStLfcU6QTrTk6IU%3D Server: - Cowboy Vary: diff --git a/tests/models/cassettes/test_get_budgets.yaml b/tests/models/cassettes/test_get_budgets.yaml index 1b396e95..21536a2c 100644 --- a/tests/models/cassettes/test_get_budgets.yaml +++ b/tests/models/cassettes/test_get_budgets.yaml @@ -11,41 +11,31 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: GET - uri: https://dev.lunchmoney.app/v1/budgets?start_date=2022-11-01&end_date=2022-11-29 + uri: https://dev.lunchmoney.app/v1/budgets?end_date=2022-11-29&start_date=2022-11-01 response: body: - string: !!binary | - H4sIAAAAAAAAA92YXU/bMBSG/0rk61AladMS7vgYMIlpiG7aBUKVm5ykFo5dOTZbhvrfZ5OWpuyU - 7oLd+K52nGOfp699Xuf+meRUQyVVOxO0BnJCTnkuF5KHwRlVDQm3z1lBTpIki4dJr7NS0izXrwrD - eUi6Hje4a7OmG9RrM5FL90JJeQMhgV85NwXMSiXr2dwUFWj8mZba9r4+K6im5OSZJFGSHMXxURS7 - ljB2oKKioblmUtjhUUiaJYiCicqGmM1pY+eOViubhhQlq9xb3a+XZU/SoUuwAJE7HrUUesFbS4LW - 0gi9ySM3Stkh7ab9GrlrUmM7GlNV0NhXXhagiZ1SqgKUmz78G/0ZFY/BJQCOfegd9m5layIxSoRx - jtIYjzylocAJy45yYThz4rl/JkvawqtCZBmc1qBYTnuiJMM0HSSjKCJ9aRLTFKSnzW6QI72JeMPm - oHQbfDHaUN4PGGfpYDw5ELAb1A94AeIJVPDD/jlqZ33RIIoOLS9aPWz3SIIp4lyWJUAwXcglvk18 - FcYayhCD8klY2JoyUbtTBqOS+k1lhFG5lLIILoAzq8cWozKK/KaSYlSuaBMG31zYpbSacZFRxYz9 - ZjNG2bBS46fKsd80JigNJXNbZvbYkcxvIscYkWu74DA4tdYOPU5iT5G870nObc0xqr1h4rFf78fp - 4Xo/Tvv1PsOQ34JqpKA8OKcKUOr+XUd2fTFqg24BP6hGvt4S3tfgNVCuF21wS382gWUTfBaNsfPk - 0Jdk+g8WNN2xoDFqt+6A1XOjGkDt1ijJJr7+CxssqN+6s1dd6qjvkabnzjxGLcUdK6BZ0BflYmV0 - 4gWUkHRTbbviaNu52YD9vjc7cD9V1JpMgZdHrF4q+YRvQqc3z+88MWpR3MV4uUdsI189/fvF4UrK - ikPwVUAw1VLRaqcoxIMsO/SRww7ZqQqoU5nW8hF1KGPPq0GCfsy0V8wn4KgM/Tjz9vNAP2V+F+se - 9huKt1jeZrpeIIJik7pW5qMz358QakE/OKH/8V/uz2i4evgDoC4BR/wYAAA= + string: '[{"category_name":"Uncategorized","category_id":null,"is_group":false,"group_id":null,"is_income":false,"exclude_from_budget":false,"exclude_from_totals":false,"archived":false,"data":{"2022-11-01":{}},"config":null,"order":0},{"category_name":"Uncategorized","category_id":null,"is_group":false,"group_id":null,"is_income":true,"exclude_from_budget":false,"exclude_from_totals":false,"archived":false,"data":{"2022-11-01":{}},"config":null,"order":1},{"category_name":"Groceries","category_id":443128,"category_group_name":null,"group_id":null,"is_group":null,"is_income":false,"exclude_from_budget":false,"exclude_from_totals":false,"order":2,"archived":false,"data":{"2022-11-01":{"num_transactions":1,"spending_to_base":28.15}},"config":null},{"category_name":"Home","category_id":443125,"category_group_name":null,"group_id":null,"is_group":null,"is_income":false,"exclude_from_budget":false,"exclude_from_totals":false,"order":3,"archived":false,"data":{"2022-11-01":{"num_transactions":0,"spending_to_base":0}},"config":null},{"category_name":"Income","category_id":443129,"category_group_name":null,"group_id":null,"is_group":null,"is_income":true,"exclude_from_budget":false,"exclude_from_totals":false,"order":4,"archived":false,"data":{"2022-11-01":{"num_transactions":0,"spending_to_base":0}},"config":null},{"category_name":"Personal Care","category_id":443127,"category_group_name":null,"group_id":null,"is_group":null,"is_income":false,"exclude_from_budget":false,"exclude_from_totals":false,"order":5,"archived":false,"data":{"2022-11-01":{"num_transactions":0,"spending_to_base":0}},"config":null},{"category_name":"Shopping","category_id":443126,"category_group_name":null,"group_id":null,"is_group":null,"is_income":false,"exclude_from_budget":false,"exclude_from_totals":false,"order":6,"archived":false,"data":{"2022-11-01":{"num_transactions":10,"spending_to_base":711.69}},"config":null}]' headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive - Content-Encoding: - - gzip Content-Type: - application/json; charset=utf-8 Date: - - Mon, 20 Sep 2021 23:46:54 GMT + - Fri, 15 Dec 2023 02:27:54 GMT Etag: - - W/"18fc-+GSluJOaeMsffGw0jN8iQ5GS3mA" + - W/"777-j13A3UPLJEkv40D3zVVD3YExCGQ" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702607273&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=RSz%2Fe9doIkUZ4FD3SjpFfTFCW97iSWZ59QBjTe4lZFY%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702607273&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=RSz%2Fe9doIkUZ4FD3SjpFfTFCW97iSWZ59QBjTe4lZFY%3D Server: - Cowboy Transfer-Encoding: @@ -56,6 +46,8 @@ interactions: - 1.1 vegur X-Powered-By: - Express + content-length: + - '1911' status: code: 200 message: OK diff --git a/tests/models/cassettes/test_get_categories.yaml b/tests/models/cassettes/test_get_categories.yaml index be8fa07b..55a77f8c 100644 --- a/tests/models/cassettes/test_get_categories.yaml +++ b/tests/models/cassettes/test_get_categories.yaml @@ -11,45 +11,31 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.27.1 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: GET uri: https://dev.lunchmoney.app/v1/categories response: body: - string: !!binary | - H4sIAAAAAAAAA82ZUW/bKhTHv4rl58QDDNjmre227j5MmtZcXWnTFNGYJFYdE2E7d9W07z6cRMZr - 7AXUtY7Ul4Z/VX6c/zkcTn74C16JlVSZKH329YefpT5DKIEhmvgF3wif+Vf5Qq5lPvGuuSr9iZ+K - cqGybZXJwmdFnecTPyvnWbGQjXzJ81JMfPF9kdepmC+V3Mzv63Qlqv61Slb603at3qZ6Q+mca7mP - AIJTEE0RmgHEQMQgDAiOv+hNLJSw0umdrZSst+0/2P82bzCbrf+cdJDDFvmaFw/eeyEuAJdQO9yD - zgGXYoOb5fmYqJgwAAMI0BnU33S2qBHGUdSi3vBy7b3xrmYfn/Ielv7LqnWq+P98fyAvSQ/1D5lB - yjBmEAQxAf30/ToXX5tA38jlUgjvbi23F2BtGtpZ+6CzJaYoobAlfivuq5NI/1tUii8eROrdKJFm - lXfDVeodpS8aczBFdAYwwwmDOKBo4AT6dS4xJ+0JvCsqoSqeFRtRnBzF6wc9GrB5v84WmWAUJQZ5 - p1HHMHgyDcEMAEYSna1BkgzV7l6dtcEhSUxKvzvsMD0x+a0ohOK59vb+gn/0llJ513s8b/9HpdY5 - FLlK1UMHcljqtzuaQcIQZGESxMlQievVOdgdg/Y83kvZpHKe7YR6HN3uFBArux91LhlOW+RbXk68 - meJFuZU60/eoY4OT2LK4x86lLTbg2XKUNH+CMJjmvToXVFPSbpVciH2XPjYuBXYV/KhzyWJzbX/Q - KBPvqq7kBfAmlryJK68J7z8HmHOsPTXYojxbk1JsR3rQ2ZImSQzCDulOlNWzexHn2whNAZwifeuG - jGBGQn3L9NIO6VziairUJ/7YoB7L81Ko14U+DR2xez0fdS7QZmDwSahSFvvWQ5339IvnL7Qrz0ed - C3LYQb6Ai4iicw/o33S2pBglkSH9LLLNfa1K8foprEHiKUqaRhFGuucPaDTk5l6dy3CEdICLynvj - fdSt1Yqvnufn5yQwjhkIg/D8kKSrc3Ez7iCXFa91xboIU0eWpo5cuyszFfqcacg1V1mxGh2YDL2S - +nUuETamvhP5cppttkrunp/IfyXMod174ahzoTYPpWbutb2EGNPQ0tShq6mpqdR3G/kw5vWLQVN7 - 9XvtXMHq6ixRQxyC2LRZM12wTgYgzYft9ONFB3u6Z6Sap7lwGhgQxDEc6C17ddZTLkg6Resp3x/o - vbedtb9xW/1pBKabZxQyTBkhAYqGrqtenUtadw5C8Z3Ix09qYtl+EVdWYsZb5vuJsV8S1PJZTK2e - xd9+/gLWr/HGixwAAA== + string: '{"categories":[{"id":443128,"name":"Groceries","description":null,"is_income":false,"exclude_from_budget":false,"exclude_from_totals":false,"updated_at":"2023-03-07T02:10:27.268Z","created_at":"2023-03-07T02:10:27.268Z","is_group":false,"group_id":null,"archived":false,"archived_on":null,"order":null},{"id":443125,"name":"Home","description":null,"is_income":false,"exclude_from_budget":false,"exclude_from_totals":false,"updated_at":"2023-03-07T02:09:42.960Z","created_at":"2023-03-07T02:09:42.960Z","is_group":false,"group_id":null,"archived":false,"archived_on":null,"order":null},{"id":443129,"name":"Income","description":null,"is_income":true,"exclude_from_budget":false,"exclude_from_totals":false,"updated_at":"2023-03-07T02:40:15.216Z","created_at":"2023-03-07T02:40:15.216Z","is_group":false,"group_id":null,"archived":false,"archived_on":null,"order":null},{"id":443127,"name":"Personal Care","description":null,"is_income":false,"exclude_from_budget":false,"exclude_from_totals":false,"updated_at":"2023-03-07T02:10:17.225Z","created_at":"2023-03-07T02:10:17.225Z","is_group":false,"group_id":null,"archived":false,"archived_on":null,"order":null},{"id":443126,"name":"Shopping","description":null,"is_income":false,"exclude_from_budget":false,"exclude_from_totals":false,"updated_at":"2023-03-07T02:10:12.260Z","created_at":"2023-03-07T02:10:12.260Z","is_group":false,"group_id":null,"archived":false,"archived_on":null,"order":null}]}' headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive - Content-Encoding: - - gzip Content-Type: - application/json; charset=utf-8 Date: - - Tue, 07 Jun 2022 15:44:22 GMT + - Fri, 15 Dec 2023 02:32:22 GMT Etag: - - W/"1c8b-2C+z0APSMSFso9iuFK0RMSqaYvc" + - W/"5aa-MbmNEXQ+cwhlZ4ywOUrmZ68sek0" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702607542&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=8xQJI4s4EliWDIdvpGOmgBgTV2jgVm9BOMwhWYO5vYk%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702607542&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=8xQJI4s4EliWDIdvpGOmgBgTV2jgVm9BOMwhWYO5vYk%3D Server: - Cowboy Transfer-Encoding: @@ -60,6 +46,8 @@ interactions: - 1.1 vegur X-Powered-By: - Express + content-length: + - '1450' status: code: 200 message: OK diff --git a/tests/models/cassettes/test_get_category.yaml b/tests/models/cassettes/test_get_category.yaml index f6e4f691..f7cb43be 100644 --- a/tests/models/cassettes/test_get_category.yaml +++ b/tests/models/cassettes/test_get_category.yaml @@ -11,27 +11,33 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.27.1 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: GET - uri: https://dev.lunchmoney.app/v1/categories/229135 + uri: https://dev.lunchmoney.app/v1/categories/443128 response: body: - string: '{"id":229135,"name":"Entertainment","description":null,"is_income":false,"exclude_from_budget":false,"exclude_from_totals":false,"is_group":false,"group_id":null}' + string: '{"id":443128,"name":"Groceries","description":null,"is_income":false,"exclude_from_budget":false,"exclude_from_totals":false,"is_group":false,"group_id":null,"archived":false,"archived_on":null,"order":null}' headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive Content-Length: - - '162' + - '207' Content-Type: - application/json; charset=utf-8 Date: - - Tue, 07 Jun 2022 15:21:08 GMT + - Fri, 15 Dec 2023 02:39:55 GMT Etag: - - W/"a2-RQLV8EnDXH9R79VfKoVrPwX4h/0" + - W/"cf-ArqdB5r7uq6fsA6ObfnDkpwwGrE" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702607995&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=RRRHUkoD06vvLyGFuk78%2BkCInj2SL%2FBT%2BL9cD8td%2F4g%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702607995&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=RRRHUkoD06vvLyGFuk78%2BkCInj2SL%2FBT%2BL9cD8td%2F4g%3D Server: - Cowboy Vary: diff --git a/tests/models/cassettes/test_get_crypto.yaml b/tests/models/cassettes/test_get_crypto.yaml index 88381c13..84c982b8 100644 --- a/tests/models/cassettes/test_get_crypto.yaml +++ b/tests/models/cassettes/test_get_crypto.yaml @@ -11,27 +11,33 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: GET uri: https://dev.lunchmoney.app/v1/crypto response: body: - string: '{"crypto":[{"id":2939,"source":"manual","created_at":"2021-09-16T14:10:07.976Z","name":"","display_name":"Coinbase","balance":"0.000000000000000000","balance_as_of":"2021-09-20T23:45:01.438Z","currency":"BTC","status":"active","institution_name":"Coinbase"}]}' + string: '{"crypto":[{"id":7286,"source":"manual","created_at":"2023-12-15T03:02:18.331Z","name":"Bitcoin","display_name":null,"balance":"1.000000000000000000","balance_as_of":"2023-12-15T03:00:08.292Z","currency":"BTC","status":"active","institution_name":null}]}' headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive Content-Length: - - '259' + - '254' Content-Type: - application/json; charset=utf-8 Date: - - Mon, 20 Sep 2021 23:46:55 GMT + - Fri, 15 Dec 2023 03:02:44 GMT Etag: - - W/"103-qXMYPLAohEtQAnfxStAHSQkDhnk" + - W/"fe-gWd945unYRZrDjreifrq6CEXmUc" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702609364&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=D2SqsIheCBS9moU68CE44YICCUb1SCHSza2L8Wt0hE8%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702609364&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=D2SqsIheCBS9moU68CE44YICCUb1SCHSza2L8Wt0hE8%3D Server: - Cowboy Vary: diff --git a/tests/models/cassettes/test_get_plaid_accounts.yaml b/tests/models/cassettes/test_get_plaid_accounts.yaml index e819502e..2566ea6d 100644 --- a/tests/models/cassettes/test_get_plaid_accounts.yaml +++ b/tests/models/cassettes/test_get_plaid_accounts.yaml @@ -11,42 +11,73 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: GET uri: https://dev.lunchmoney.app/v1/plaid_accounts response: body: - string: !!binary | - H4sIAAAAAAAAA+WXbW/aMBDHv0qUV+tEI9ux8/SOAm3RGHSQ8qLThNzEai2CQYmDhKp+9zkdg7BC - 6vJQaVteRZe7s/LT/853T+YsoTwe0Sia5kJmZvD9yeSxGWBIfFwzYyrZKOFizJTNRADBc+CfI2DW - TEEnTNku0umYpfSBGedG63OY0pipjzHPVOLFaOmkPvTrzZZxyQUVEaeJ0RYxn/M4V6+lDBBipKLl - YlZEcTFnmZwwIZUty++X5vvf/so6odlYmZZxXGSSy1zyqdh5cpFKUpmrXzVpJPm8SJPQTI74ZDZN - pRmIPElq5j1NVECRAlhAPcorytOUiWihbHkWmyuf0Ut4PitglShBN4ROAJwAuhb2nbviHD7hyxOe - ayvQLtEB3aAzLhWunihQDxWVPN2Cuuy2dlqii1IW802av0xGRNN4zdOHEGznWUr/Nsk1Cj9EMLBx - QHzLt9GdWeYLseNYZD/EpbwYVSH2dBC3Bjc3r4m+KchMTqOxoUJEmaDnbSd4yWOWcLko41Pi/DAp - Or5fwQnocLqe5hkzBnTOxUNWBSxms2nG5TRdbAJbRS5peQDsqN96kiyMCyrG2mrzzpEXQhLYXgCx - 5dhkU23YBcQC6FCKgJAKir4OxXa32R62m7f1zh6a29IE3yc5PcFBF9qeRQ7GVS06pIVLSJYqFEbj - kUVjpZ89hBetQ1fKQ/BYynv5ZeAGNgkQtjz4R59D2HYs5+D6rVaeq4Oy0x72ulc947pV74TXe6gP - AzguMXRd8jf2OqjD6ivPIpaoA5lqesftebvu2L2UBwvlESU+aCHgbSrPBgjZFvROKz2tcfFbzqNx - xpM5S6sg6g4qtuPiIwwqR9PexjyCdsPytO7ZfmsQ9tuNsNU0BmGv8cW47bbDwf89oThad+vgkSq5 - HPeqQADvaHNbC3YXMb0xhXjEQu5pC9Z+B8kjNj4f2s4HDXsEW+C0EH2t3W3wUn836kS1uoXNXuM1 - x9crcinoUxFzprkfbyv2ky7Ito2Bp6r2pEuyp3VbF5yMT53hVe/M6A9uK/X67/dK19Fi1urUFbaa - 0e42rIOHQewg99hbCIKAOBaGJ4D14/knMreSVgMTAAA= + string: | + { + "plaid_accounts": [ + { + "id": 71394, + "date_linked": "2023-12-15", + "name": "Chase - Freedom", + "display_name": "Chase Freedom", + "type": "credit", + "subtype": "creditcard", + "mask": "5678", + "institution_name": "Chase", + "status": "active", + "limit": 12345, + "balance": "123.0900", + "currency": "usd", + "balance_last_update": "2023-12-14T15:55:00.753Z", + "import_start_date": "2023-02-06", + "last_import": "2023-12-14T15:55:03.163Z", + "last_fetch": "2023-12-14T15:55:03.301Z", + "plaid_last_successful_update": "2023-12-13T15:51:37.490Z" + }, + { + "id": 71395, + "date_linked": "2023-12-15", + "name": "Chase - Sapphire", + "display_name": "Chase Sapphire", + "type": "credit", + "subtype": "creditcard", + "mask": "1234", + "institution_name": "Chase", + "status": "active", + "limit": 12345, + "balance": "456.0900", + "currency": "usd", + "balance_last_update": "2023-12-14T15:55:00.753Z", + "import_start_date": "2023-02-06", + "last_import": "2023-12-14T15:55:03.163Z", + "last_fetch": "2023-12-14T15:55:03.301Z", + "plaid_last_successful_update": "2023-12-13T15:51:37.490Z" + } + ] + } headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive - Content-Encoding: - - gzip Content-Type: - application/json; charset=utf-8 Date: - - Mon, 20 Sep 2021 23:46:55 GMT + - Fri, 15 Dec 2023 03:04:46 GMT Etag: - - W/"1303-QpMdfClFpRHc91/edMUZPthZKs0" + - W/"1f58-hipJFRmyr9x6gdp2aLKh5viwTAU" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702609486&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=1cXBwXEaoZ%2Fm4ZhVbC9Kz5VVT8hDCwaBZH8pnT4DXyQ%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702609486&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=1cXBwXEaoZ%2Fm4ZhVbC9Kz5VVT8hDCwaBZH8pnT4DXyQ%3D Server: - Cowboy Transfer-Encoding: @@ -57,6 +88,8 @@ interactions: - 1.1 vegur X-Powered-By: - Express + content-length: + - '8024' status: code: 200 message: OK diff --git a/tests/models/cassettes/test_get_recurring_expenses.yaml b/tests/models/cassettes/test_get_recurring_expenses.yaml index c77dc94f..85bf913b 100644 --- a/tests/models/cassettes/test_get_recurring_expenses.yaml +++ b/tests/models/cassettes/test_get_recurring_expenses.yaml @@ -11,62 +11,35 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: GET - uri: https://dev.lunchmoney.app/v1/recurring_expenses?start_date=2022-11-01&debit_as_negative=False + uri: https://dev.lunchmoney.app/v1/recurring_expenses?debit_as_negative=False&start_date=2022-11-01 response: body: - string: !!binary | - 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 - aBNauTLxi+L919d/ASeqfSMqOgAA + string: '{"recurring_expenses":[{"id":585244,"start_date":"2021-12-01","end_date":null,"cadence":"monthly","payee":"Test Item","amount":"100.0000","currency":"usd","created_at":"2023-12-15T02:38:04.131Z","description":"Video Streaming","billing_date":"2022-11-01","type":"cleared","original_name":null,"source":"manual","plaid_account_id":null,"asset_id":null,"category_id":443126,"transaction_id":null}]}' headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive - Content-Encoding: - - gzip + Content-Length: + - '396' Content-Type: - application/json; charset=utf-8 Date: - - Wed, 20 Oct 2021 04:55:45 GMT + - Fri, 15 Dec 2023 02:38:40 GMT Etag: - - W/"3a2a-S77KNgBrvha3Iq84ldNbVb0042s" + - W/"18c-Y2ukKiTxVJNnFDEIhjY0XlrmVgc" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702607920&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=ODq7%2BtzP93fHx0jIG2mzN8v19hfSsKtMTc8%2F80zMDFM%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702607920&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=ODq7%2BtzP93fHx0jIG2mzN8v19hfSsKtMTc8%2F80zMDFM%3D Server: - Cowboy - Transfer-Encoding: - - chunked Vary: - Origin, Accept-Encoding Via: diff --git a/tests/models/cassettes/test_get_tags.yaml b/tests/models/cassettes/test_get_tags.yaml index 66557dc7..34e41128 100644 --- a/tests/models/cassettes/test_get_tags.yaml +++ b/tests/models/cassettes/test_get_tags.yaml @@ -11,27 +11,33 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: GET uri: https://dev.lunchmoney.app/v1/tags response: body: - string: '[{"id":21559,"name":"test","description":null}]' + string: '[{"id":66845,"name":"test","description":null,"archived":false}]' headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive Content-Length: - - '47' + - '64' Content-Type: - application/json; charset=utf-8 Date: - - Mon, 20 Sep 2021 23:48:48 GMT + - Fri, 15 Dec 2023 02:36:18 GMT Etag: - - W/"2f-kY1WmMDZIsr+kcBhXLB5eymnREM" + - W/"40-46wK3k5iVXZWvLGgrDEZnekjOD0" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702607778&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=%2Bn1LzGjK2z7WHGM%2BDE6zzJ9k%2BCfen4h0lips%2BrB%2FGHk%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702607778&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=%2Bn1LzGjK2z7WHGM%2BDE6zzJ9k%2BCfen4h0lips%2BrB%2FGHk%3D Server: - Cowboy Vary: diff --git a/tests/models/cassettes/test_get_transaction.yaml b/tests/models/cassettes/test_get_transaction.yaml index ff96df9b..27411ad0 100644 --- a/tests/models/cassettes/test_get_transaction.yaml +++ b/tests/models/cassettes/test_get_transaction.yaml @@ -11,27 +11,33 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: GET - uri: https://dev.lunchmoney.app/v1/transactions/53725270 + uri: https://dev.lunchmoney.app/v1/transactions/546434806 response: body: - string: '{"id":53725270,"date":"2021-09-06","payee":"Vail","amount":"103.5000","currency":"usd","notes":"Updated on 2021-09-16 14:11:38.834960","category_id":229144,"recurring_id":null,"asset_id":null,"plaid_account_id":41575,"status":"cleared","is_group":false,"group_id":null,"parent_id":null,"has_children":null,"tags":null,"external_id":null,"original_name":"IMPRINT EVENTS GROUP","type":null,"subtype":null,"fees":null,"price":null,"quantity":null}' + string: '{"id":546434806,"date":"2023-12-12","payee":"Example Restaurant","amount":"120.0000","currency":"usd","to_base":120,"notes":"Saturday Dinner","category_id":null,"recurring_id":null,"asset_id":null,"plaid_account_id":null,"status":"uncleared","is_group":false,"group_id":null,"parent_id":null,"has_children":null,"tags":[],"external_id":null,"original_name":"Example Restaurant","type":null,"subtype":null}' headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive Content-Length: - - '444' + - '405' Content-Type: - application/json; charset=utf-8 Date: - - Mon, 20 Sep 2021 23:46:57 GMT + - Fri, 15 Dec 2023 02:42:54 GMT Etag: - - W/"1bc-BzdcdXmkBjHfbNJlsxlDESr83aE" + - W/"195-EpyZHBeZX6gP2/Db89FUjBHiYrU" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702608174&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=8I8dTQbi4FBYy1yARTnn6jLVfvotluoMbjcgkSnyIIo%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702608174&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=8I8dTQbi4FBYy1yARTnn6jLVfvotluoMbjcgkSnyIIo%3D Server: - Cowboy Vary: diff --git a/tests/models/cassettes/test_get_transactions.yaml b/tests/models/cassettes/test_get_transactions.yaml index 82e20c28..47219fc1 100644 --- a/tests/models/cassettes/test_get_transactions.yaml +++ b/tests/models/cassettes/test_get_transactions.yaml @@ -11,67 +11,35 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: GET uri: https://dev.lunchmoney.app/v1/transactions response: body: - string: !!binary | - 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 - uuHwy59/A9ikKnhzOwAA + string: '{"transactions":[{"id":546434806,"date":"2023-12-12","original_date":null,"payee":"Example Restaurant","amount":"120.0000","currency":"usd","to_base":120,"notes":"Saturday Dinner","category_id":null,"recurring_id":null,"asset_id":null,"plaid_account_id":null,"status":"uncleared","is_group":false,"group_id":null,"parent_id":null,"tags":[],"external_id":null,"original_name":"Example Restaurant","type":null,"subtype":null},{"id":546452296,"date":"2023-12-12","original_date":null,"payee":"Example Restaurant","amount":"120.0000","currency":"usd","to_base":120,"notes":"Saturday Dinner","category_id":null,"recurring_id":null,"asset_id":null,"plaid_account_id":null,"status":"uncleared","is_group":false,"group_id":null,"parent_id":null,"tags":[],"external_id":"1234","original_name":"Example Restaurant","type":null,"subtype":null}]}' headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive - Content-Encoding: - - gzip + Content-Length: + - '834' Content-Type: - application/json; charset=utf-8 Date: - - Mon, 20 Sep 2021 23:46:56 GMT + - Fri, 15 Dec 2023 02:32:27 GMT Etag: - - W/"3b73-bF89HvKg+leZ6uJp2XlOPbHQ8DQ" + - W/"342-P2joIYSONqkvyUVRlqWgtQcd1dE" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702607547&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=j4Lm34Pm%2FPJMsdTQ7%2BluAVSR4c0fbNpznidVd%2FrUlns%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702607547&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=j4Lm34Pm%2FPJMsdTQ7%2BluAVSR4c0fbNpznidVd%2FrUlns%3D Server: - Cowboy - Transfer-Encoding: - - chunked Vary: - Origin, Accept-Encoding Via: diff --git a/tests/models/cassettes/test_get_user.yaml b/tests/models/cassettes/test_get_user.yaml index 1cc004c0..7987290e 100644 --- a/tests/models/cassettes/test_get_user.yaml +++ b/tests/models/cassettes/test_get_user.yaml @@ -11,7 +11,7 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.28.1 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: GET @@ -29,9 +29,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Thu, 13 Oct 2022 05:05:37 GMT + - Fri, 15 Dec 2023 02:32:30 GMT Etag: - W/"a4-M9AgMOS8/DALNuYYUdWJdJyoQWA" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702607550&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=hqyTjOanwQpiN09wgseHis1OammhecJUOY0Q4M6NHTo%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702607550&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=hqyTjOanwQpiN09wgseHis1OammhecJUOY0Q4M6NHTo%3D Server: - Cowboy Vary: diff --git a/tests/models/cassettes/test_insert_transactions.yaml b/tests/models/cassettes/test_insert_transactions.yaml index 99c230ca..9c30af2c 100644 --- a/tests/models/cassettes/test_insert_transactions.yaml +++ b/tests/models/cassettes/test_insert_transactions.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"transactions": [{"date": "2021-09-20", "amount": 3.5, "payee": "Random Test", "asset_id": 23043, "notes": "Random Test Description: 2021-09-20 17:46:57.069659"}], "apply_rules": false, "skip_duplicates": true, "check_for_recurring": false, "debit_as_negative": false, "skip_balance_update": true}' + body: '{"transactions": [{"date": "2023-12-14", "amount": 3.5, "payee": "Random Test", "asset_id": 49335, "notes": "Random Test Description: 2023-12-14 20:01:42.588685"}], "apply_rules": false, "skip_duplicates": true, "check_for_recurring": false, "debit_as_negative": false, "skip_balance_update": true}' headers: Accept: - '*/*' @@ -13,27 +13,33 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: POST uri: https://dev.lunchmoney.app/v1/transactions response: body: - string: '{"ids":[56034790]}' + string: '{"ids":[561205301]}' headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive Content-Length: - - '18' + - '19' Content-Type: - application/json; charset=utf-8 Date: - - Mon, 20 Sep 2021 23:46:57 GMT + - Fri, 15 Dec 2023 03:01:42 GMT Etag: - - W/"12-fLM1EHbcaIVuFdrr5voTXMmeoHI" + - W/"13-IEhtY6cV9Nou10x7E28a09w0Jjo" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702609302&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=DlFFyKJ9CWq6yahw%2F2Su1%2Brvs49X7NBjpdmCZruyI%2Bo%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702609302&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=DlFFyKJ9CWq6yahw%2F2Su1%2Brvs49X7NBjpdmCZruyI%2Bo%3D Server: - Cowboy Vary: diff --git a/tests/models/cassettes/test_split_transaction.yaml b/tests/models/cassettes/test_split_transaction.yaml index 20644d6b..7c3272aa 100644 --- a/tests/models/cassettes/test_split_transaction.yaml +++ b/tests/models/cassettes/test_split_transaction.yaml @@ -11,27 +11,33 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: GET - uri: https://dev.lunchmoney.app/v1/transactions/57271032 + uri: https://dev.lunchmoney.app/v1/transactions/546434806 response: body: - string: '{"id":57271032,"date":"2021-09-27","payee":"Test Splittable Transaction","amount":"10.0000","currency":"usd","notes":"This is a test","category_id":229146,"recurring_id":null,"asset_id":23043,"plaid_account_id":null,"status":"cleared","is_group":false,"group_id":null,"parent_id":null,"has_children":false,"tags":null,"external_id":null,"original_name":"Test Splittable Transaction","type":null,"subtype":null,"fees":null,"price":null,"quantity":null}' + string: '{"id":546434806,"date":"2023-12-12","payee":"Example Restaurant","amount":"120.0000","currency":"usd","to_base":120,"notes":"Saturday Dinner","category_id":null,"recurring_id":null,"asset_id":null,"plaid_account_id":null,"status":"uncleared","is_group":false,"group_id":null,"parent_id":null,"has_children":null,"tags":[],"external_id":null,"original_name":"Example Restaurant","type":null,"subtype":null}' headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive Content-Length: - - '451' + - '405' Content-Type: - application/json; charset=utf-8 Date: - - Tue, 28 Sep 2021 03:23:03 GMT + - Fri, 15 Dec 2023 03:20:11 GMT Etag: - - W/"1c3-iSTT4dwCMxHtUOjAhIIDNAMKBZI" + - W/"195-EpyZHBeZX6gP2/Db89FUjBHiYrU" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702610411&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=kXFzz6lZ8cTSDiWk3YlUOnt7lsC6SWgxnye%2FRUfUgaM%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702610411&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=kXFzz6lZ8cTSDiWk3YlUOnt7lsC6SWgxnye%2FRUfUgaM%3D Server: - Cowboy Vary: @@ -44,7 +50,7 @@ interactions: code: 200 message: OK - request: - body: '{"split": [{"date": "2021-09-27", "category_id": 229146, "notes": "This is a test", "amount": 5.0}, {"date": "2021-09-27", "category_id": 229146, "notes": "This is a test", "amount": 5.0}], "debit_as_negative": false, "skip_balance_update": true}' + body: '{"split": [{"date": "2023-12-12", "notes": "Saturday Dinner", "amount": 60.0}, {"date": "2023-12-12", "notes": "Saturday Dinner", "amount": 60.0}], "debit_as_negative": false, "skip_balance_update": true}' headers: Accept: - '*/*' @@ -53,31 +59,37 @@ interactions: Connection: - keep-alive Content-Length: - - '246' + - '204' Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: PUT - uri: https://dev.lunchmoney.app/v1/transactions/57271032 + uri: https://dev.lunchmoney.app/v1/transactions/546434806 response: body: - string: '{"updated":true,"split":[57276978,57276979]}' + string: '{"updated":true,"split":[561279455,561279456]}' headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive Content-Length: - - '44' + - '46' Content-Type: - application/json; charset=utf-8 Date: - - Tue, 28 Sep 2021 03:23:03 GMT + - Fri, 15 Dec 2023 03:20:11 GMT Etag: - - W/"2c-2pTPdQflAMlCxT9G1FYl58J/Y4M" + - W/"2e-LKGEdHJmkqsaAfR24T71TLwHLOA" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702610411&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=kXFzz6lZ8cTSDiWk3YlUOnt7lsC6SWgxnye%2FRUfUgaM%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702610411&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=kXFzz6lZ8cTSDiWk3YlUOnt7lsC6SWgxnye%2FRUfUgaM%3D Server: - Cowboy Vary: diff --git a/tests/models/cassettes/test_update_asset.yaml b/tests/models/cassettes/test_update_asset.yaml index 75b4a6b7..7a49eee6 100644 --- a/tests/models/cassettes/test_update_asset.yaml +++ b/tests/models/cassettes/test_update_asset.yaml @@ -13,27 +13,33 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: PUT - uri: https://dev.lunchmoney.app/v1/assets/21845 + uri: https://dev.lunchmoney.app/v1/assets/78214 response: body: - string: '{"id":21845,"type_name":"cash","subtype_name":"digital wallet (paypal, venmo)","name":"Splitwise Balance","balance":"5.2000","balance_as_of":"2021-09-20T23:46:53.675Z","currency":"usd","institution_name":"Splitwise","created_at":"2021-08-28T16:06:02.701Z"}' + string: '{"id":78214,"type_name":"cash","subtype_name":null,"name":"test-account-1","display_name":"Test Account #1","balance":"5.2000","balance_as_of":"2023-12-15T02:26:08.599Z","closed_on":null,"currency":"usd","institution_name":"Test Institution","exclude_transactions":false,"created_at":"2023-12-15T02:24:12.158Z"}' headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive Content-Length: - - '256' + - '311' Content-Type: - application/json; charset=utf-8 Date: - - Mon, 20 Sep 2021 23:46:53 GMT + - Fri, 15 Dec 2023 02:26:08 GMT Etag: - - W/"100-y2/VpYMBbrb5Yw77PYOkQ93uYxc" + - W/"137-vgmerT4uhwJMofHaAk5n1BfisE4" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702607168&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=ONA%2BVAcCxV3HxqlYICzA6ESFKT7wA9KQOKCexC0sAHk%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702607168&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=ONA%2BVAcCxV3HxqlYICzA6ESFKT7wA9KQOKCexC0sAHk%3D Server: - Cowboy Vary: diff --git a/tests/models/cassettes/test_update_category.yaml b/tests/models/cassettes/test_update_category.yaml index dc5901aa..64d88b63 100644 --- a/tests/models/cassettes/test_update_category.yaml +++ b/tests/models/cassettes/test_update_category.yaml @@ -13,11 +13,11 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.27.1 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: PUT - uri: https://dev.lunchmoney.app/v1/categories/343106 + uri: https://dev.lunchmoney.app/v1/categories/443128 response: body: string: 'true' @@ -31,9 +31,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Tue, 07 Jun 2022 16:49:59 GMT + - Fri, 15 Dec 2023 02:40:49 GMT Etag: - W/"4-X/5TO4MPCKAyY0ipFgr6/IraRNs" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702608049&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=o92%2FZ2oruGWKC9AbdAPC1Yn5QoZmlUIwe%2FTp3jDlq4Y%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702608049&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=o92%2FZ2oruGWKC9AbdAPC1Yn5QoZmlUIwe%2FTp3jDlq4Y%3D Server: - Cowboy Vary: diff --git a/tests/models/cassettes/test_update_crypto.yaml b/tests/models/cassettes/test_update_crypto.yaml index f801ea4f..80da5dc7 100644 --- a/tests/models/cassettes/test_update_crypto.yaml +++ b/tests/models/cassettes/test_update_crypto.yaml @@ -13,27 +13,33 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: PUT - uri: https://dev.lunchmoney.app/v1/crypto/manual/2939 + uri: https://dev.lunchmoney.app/v1/crypto/manual/7286 response: body: - string: '{"id":2939,"source":"manual","created_at":"2021-09-16T14:10:07.976Z","name":"","display_name":"Coinbase","balance":"0.500000000000000000","institution_name":"Coinbase"}' + string: '{"id":7286,"source":"manual","created_at":"2023-12-15T03:02:18.331Z","name":"Bitcoin","display_name":null,"balance":"0.500000000000000000","institution_name":null}' headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive Content-Length: - - '168' + - '163' Content-Type: - application/json; charset=utf-8 Date: - - Mon, 20 Sep 2021 23:46:55 GMT + - Fri, 15 Dec 2023 03:03:14 GMT Etag: - - W/"a8-Ru3l1wW877/dKvV+CWCdlGTZygY" + - W/"a3-z5Y92F7xf8dXvBC55j1tofFPP3M" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702609394&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=kha7eBfWgP9ohByRW9jj3Zv64Cqe%2B6X335ctENBQy2Q%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702609394&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=kha7eBfWgP9ohByRW9jj3Zv64Cqe%2B6X335ctENBQy2Q%3D Server: - Cowboy Vary: diff --git a/tests/models/cassettes/test_update_transaction.yaml b/tests/models/cassettes/test_update_transaction.yaml index eac92aa6..fb91f45d 100644 --- a/tests/models/cassettes/test_update_transaction.yaml +++ b/tests/models/cassettes/test_update_transaction.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"split": null, "transaction": {"notes": "Updated on 2021-09-20 17:46:57.606355"}, "debit_as_negative": false, "skip_balance_update": true}' + body: '{"debit_as_negative": false, "skip_balance_update": true, "transaction": {"notes": "Updated on 2023-12-14 20:10:09.718861"}}' headers: Accept: - '*/*' @@ -9,15 +9,15 @@ interactions: Connection: - keep-alive Content-Length: - - '139' + - '124' Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: PUT - uri: https://dev.lunchmoney.app/v1/transactions/55907976 + uri: https://dev.lunchmoney.app/v1/transactions/546452296 response: body: string: '{"updated":true}' @@ -31,9 +31,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Mon, 20 Sep 2021 23:46:57 GMT + - Fri, 15 Dec 2023 03:10:09 GMT Etag: - W/"10-dkPpo4JFIcQ3LWuPXbQ1isdU9JU" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702609809&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=MWgNr9qn4zfBkSPF01eSVezrcmLqqmg85H%2FdTDj8ikg%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702609809&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=MWgNr9qn4zfBkSPF01eSVezrcmLqqmg85H%2FdTDj8ikg%3D Server: - Cowboy Vary: diff --git a/tests/models/cassettes/test_upsert_budget.yaml b/tests/models/cassettes/test_upsert_budget.yaml index f66a8803..e90cecb4 100644 --- a/tests/models/cassettes/test_upsert_budget.yaml +++ b/tests/models/cassettes/test_upsert_budget.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"start_date": "2022-11-01", "category_id": 229137, "amount": 100.0}' + body: '{"start_date": "2022-11-01", "category_id": 443127, "amount": 100.0}' headers: Accept: - '*/*' @@ -13,7 +13,7 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: PUT @@ -31,9 +31,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Mon, 20 Sep 2021 23:46:53 GMT + - Fri, 15 Dec 2023 02:31:37 GMT Etag: - W/"17-5ALBl+bKXJaccIUKdwiYXHJOenY" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702607496&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=9SzrWb%2BXV2D%2BK80PrVC2H4sgzEiU%2B0CPIBSaP82e4XQ%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702607496&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=9SzrWb%2BXV2D%2BK80PrVC2H4sgzEiU%2B0CPIBSaP82e4XQ%3D Server: - Cowboy Vary: diff --git a/tests/models/test_assets.py b/tests/models/test_assets.py index cfec7cfb..b58468b2 100644 --- a/tests/models/test_assets.py +++ b/tests/models/test_assets.py @@ -24,7 +24,7 @@ def lunchmoney_asset() -> AssetsObject: AssetsObject """ splitwise_asset = AssetsObject( - id=21845, + id=78214, type_name="cash", subtype_name="digital wallet (paypal, venmo)", name="Splitwise Balance", @@ -75,7 +75,7 @@ def test_create_asset(lunch_money_obj: LunchMoney): name="test-account-1", subtype_name=None, display_name="Test Account #1", - balance=5.20, + balance=4.20, currency="usd", institution_name="Test Institution", ) diff --git a/tests/models/test_budgets.py b/tests/models/test_budgets.py index 9af5ee28..11280ee4 100644 --- a/tests/models/test_budgets.py +++ b/tests/models/test_budgets.py @@ -21,7 +21,7 @@ def test_upsert_budget( """ # Ride Sharing response = lunch_money_obj.upsert_budget( - start_date=obscure_start_date, category_id=229137, amount=100.00 + start_date=obscure_start_date, category_id=443127, amount=100.00 ) assert isinstance(response, dict) or response is None @@ -52,7 +52,7 @@ def test_delete_budget( Delete a Budget """ deleted = lunch_money_obj.remove_budget( - start_date=obscure_start_date, category_id=229137 + start_date=obscure_start_date, category_id=443127 ) logger.info("Budget Deleted") assert deleted is True diff --git a/tests/models/test_categories.py b/tests/models/test_categories.py index a5800049..2a547b65 100644 --- a/tests/models/test_categories.py +++ b/tests/models/test_categories.py @@ -41,7 +41,7 @@ def test_get_category(lunch_money_obj: LunchMoney): """ Get a Single Category """ - category_id = 229135 + category_id = 443128 category = lunch_money_obj.get_category(category_id=category_id) logger.info("Category ID # %s was just fetched: %s", category.id, category.name) assert isinstance(category, CategoriesObject) @@ -74,7 +74,7 @@ def test_update_category(lunch_money_obj: LunchMoney): """ Update a Single Category """ - category_id = 343106 + category_id = 443128 updated = lunch_money_obj.update_category( category_id=category_id, description="Test Category Description Updated" ) @@ -101,9 +101,9 @@ def test_add_to_category_group(lunch_money_obj: LunchMoney): """ name = "Test Category Group" category = lunch_money_obj.insert_into_category_group( - category_group_id=343124, + category_group_id=658694, new_categories=["Another Another Test Category"], - category_ids=[343125], + category_ids=[443128], ) logger.info("Category Group ID # %s was just created: %s", category.id, name) assert isinstance(category, CategoriesObject) diff --git a/tests/models/test_crypto.py b/tests/models/test_crypto.py index b1842862..c64cdfa7 100644 --- a/tests/models/test_crypto.py +++ b/tests/models/test_crypto.py @@ -28,6 +28,6 @@ def test_update_crypto(lunch_money_obj: LunchMoney): """ Update a Crypto Object """ - crypto = lunch_money_obj.update_crypto(crypto_id=2939, balance=0.50) + crypto = lunch_money_obj.update_crypto(crypto_id=7286, balance=0.50) assert isinstance(crypto, CryptoObject) logger.info("Crypto Asset Updated: %s", crypto.id) diff --git a/tests/models/test_transactions.py b/tests/models/test_transactions.py index 7331ae60..39a8af95 100644 --- a/tests/models/test_transactions.py +++ b/tests/models/test_transactions.py @@ -36,7 +36,7 @@ def test_get_transaction(lunch_money_obj: LunchMoney): """ Get Transaction (singular) and assert it's a Transaction """ - transaction = lunch_money_obj.get_transaction(transaction_id=53725270) + transaction = lunch_money_obj.get_transaction(transaction_id=546434806) assert isinstance(transaction, TransactionObject) logger.info("Transaction returned: %s", transaction.id) @@ -105,7 +105,7 @@ def test_split_transaction(lunch_money_obj: LunchMoney): """ Try to split a transaction """ - transaction_to_split = lunch_money_obj.get_transaction(57271032) + transaction_to_split = lunch_money_obj.get_transaction(546434806) amount_1 = transaction_to_split.amount / 2 split_object = TransactionSplitObject( date=transaction_to_split.date, @@ -125,7 +125,7 @@ def test_unsplit_transaction(lunch_money_obj: LunchMoney): """ Try to unsplit a transaction """ - transaction_ids = [103958497] + transaction_ids = [179018299] response = lunch_money_obj.unsplit_transactions( parent_ids=transaction_ids, remove_parents=True ) diff --git a/tests/plugins/pushlunch/cassettes/test_post_transaction.yaml b/tests/plugins/pushlunch/cassettes/test_post_transaction.yaml index b4466c85..ecd85be7 100644 --- a/tests/plugins/pushlunch/cassettes/test_post_transaction.yaml +++ b/tests/plugins/pushlunch/cassettes/test_post_transaction.yaml @@ -11,27 +11,33 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: GET uri: https://dev.lunchmoney.app/v1/assets response: body: - string: '{"assets":[{"id":21845,"type_name":"cash","subtype_name":"digital wallet (paypal, venmo)","name":"Splitwise Balance","display_name":"Splitwise","balance":"176.6700","balance_as_of":"2021-11-15T17:44:52.277Z","currency":"usd","closed_on":null,"institution_name":"Splitwise","created_at":"2021-08-28T16:06:02.701Z"},{"id":23043,"type_name":"cash","subtype_name":"digital wallet (paypal, venmo)","name":"Test Account","display_name":"Test Account","balance":"181.7100","balance_as_of":"2021-11-02T22:27:05.311Z","currency":"usd","closed_on":null,"institution_name":"Test","created_at":"2021-09-20T05:32:29.060Z"}]}' + string: '{"assets":[{"id":49335,"type_name":"cash","subtype_name":"checking","name":"Test Account","display_name":null,"balance":"-16513.5500","balance_as_of":"2023-03-07T02:43:48.383Z","closed_on":null,"currency":"usd","institution_name":null,"exclude_transactions":false,"created_at":"2023-03-07T02:05:23.670Z"},{"id":78214,"type_name":"cash","subtype_name":null,"name":"test-account-1","display_name":"Test Account #1","balance":"5.2000","balance_as_of":"2023-12-15T02:26:08.599Z","closed_on":null,"currency":"usd","institution_name":"Test Institution","exclude_transactions":false,"created_at":"2023-12-15T02:24:12.158Z"}]}' headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive Content-Length: - - '611' + - '618' Content-Type: - application/json; charset=utf-8 Date: - - Tue, 16 Nov 2021 01:56:24 GMT + - Fri, 15 Dec 2023 03:27:35 GMT Etag: - - W/"263-PuKlmQwTXplhQGNn6uzd/fxEv94" + - W/"26a-RdZT78+tFlrfVSVBVJsvuI2fLCs" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702610855&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=jbOtlJShgUrEu1SyJzVSXw%2BEEVmle0iQjCmXiIgczW0%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702610855&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=jbOtlJShgUrEu1SyJzVSXw%2BEEVmle0iQjCmXiIgczW0%3D Server: - Cowboy Vary: @@ -55,48 +61,77 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: GET uri: https://dev.lunchmoney.app/v1/plaid_accounts response: body: - string: !!binary | - H4sIAAAAAAAAA+WY74+aSBjH/xXCq/bikvkJDO+s2q45Tz1h90UvjZkF0k5ENDCYmKb/+z1Yb8Wu - suxC09yd8YV5mGfG+eT7/OKruU2kipYyDDdFqnPT++urqSLTY5gL1jMjqeNlotJVDDaTIIJvMHxt - s2emch2D7V22WcWZ/BwbN8botyCTUQwPI5XDxvvlcRE8WPSHI+O9SmUaKpkY4zRSOxUV8LOyA8aM - gLfeb0svle7iXK/jVIMtLx6O5od/1oN1LfMVmI5+Ks210oVWm/TqyeVWWuoCrmrKUKtduU0ic71U - 6+0m06aXFknSMx9kAg7lFshC8IFVYZFlcRruwVbkkfm4ZnlwL7YlrColHmDbI8KjyOLU+Vieo9bq - eMK33iNohzcBPZBbpQHXLC1R3wOVIruAurrstOiILsziSJ3T/G4yQplFJ54CY3SZZ2X750me7sEC - jD3KPU4tF9sfzSpf4iLLbkcYU0swWkPYbUJ45M/nT4E+q8dcb8KVAS5pFaDrXgb4XkVxovS+Sg+0 - +ROViG6IEyDbo9SjroVInRJRE063myKPDV/uVPo5rwMWxdtNrvQm258De/Q80nIRuhK+/STZG+9k - unqB2BAOMPI494htCdc9F5twkAtaaRfPzBIOrqEomlAcT4fj+/Hwrj95heYu5MCXSa6Z4LCDmG3x - 1rgoIjW4SCNcqY4zQGEMvsThCvTzCuGFJ9dH5RHcnfJO+ci1iHDOlceQcCxbtFeeXYPSaYJyMr6f - TT/MjNtRfxLcvkJ9DOFVhaHj8H9jrsNNWP2h8jBO4MAYkl63Oe9aiX258uDW7HBr5EG4Ys7OlQfR - B2aB20uP1eBs1C3+WahwlatkF2d1EJv2KdR2WAd9SucdX9mPUHEdltuozi5GfrAYD4LR0PCD2eB3 - 4246Dvz/d4diN6qt/hcJcum2VBDErqS5iwF7jdj3/4vcG+IGmMN9Pcwsm/LzkMXYhhLitkMJ5Ybz - moilL0DZYeYTmNoddns8IMijwuPYQjb6AaPLmUV4+8TnXscoGk1v/iEE53AiDG/BcDZ4SvLpkFxx - elP6vG04IV+K9586IlOKBe9iTGboGmib8Gahf8iU87vF4Lbvj4z5pD/9JRnzuVYRBZgdot+x2I+t - Yvs3DmXLXdMnuo16n1JyxpvJ/YfZW2Ph39UG/3+/8jh2I2ajSR+w9YzxdGC1bq1B9U7XMx0hSAiL - k7YCI+JJbfn07W/qjC1HUBQAAA== + string: | + { + "plaid_accounts": [ + { + "id": 71394, + "date_linked": "2023-12-15", + "name": "Chase - Freedom", + "display_name": "Chase Freedom", + "type": "credit", + "subtype": "creditcard", + "mask": "5678", + "institution_name": "Chase", + "status": "active", + "limit": 12345, + "balance": "123.0900", + "currency": "usd", + "balance_last_update": "2023-12-14T15:55:00.753Z", + "import_start_date": "2023-02-06", + "last_import": "2023-12-14T15:55:03.163Z", + "last_fetch": "2023-12-14T15:55:03.301Z", + "plaid_last_successful_update": "2023-12-13T15:51:37.490Z" + }, + { + "id": 71395, + "date_linked": "2023-12-15", + "name": "Chase - Sapphire", + "display_name": "Chase Sapphire", + "type": "credit", + "subtype": "creditcard", + "mask": "1234", + "institution_name": "Chase", + "status": "active", + "limit": 12345, + "balance": "456.0900", + "currency": "usd", + "balance_last_update": "2023-12-14T15:55:00.753Z", + "import_start_date": "2023-02-06", + "last_import": "2023-12-14T15:55:03.163Z", + "last_fetch": "2023-12-14T15:55:03.301Z", + "plaid_last_successful_update": "2023-12-13T15:51:37.490Z" + } + ] + } headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive - Content-Encoding: - - gzip + Content-Length: + - '21' Content-Type: - application/json; charset=utf-8 Date: - - Tue, 16 Nov 2021 01:56:24 GMT + - Fri, 15 Dec 2023 03:27:35 GMT Etag: - - W/"1450-Y89kn8ima647B5tEKBH83Vze8Mg" + - W/"15-HiUW5V/D9oSc9LAodzElf6GkW1U" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702610855&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=jbOtlJShgUrEu1SyJzVSXw%2BEEVmle0iQjCmXiIgczW0%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702610855&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=jbOtlJShgUrEu1SyJzVSXw%2BEEVmle0iQjCmXiIgczW0%3D Server: - Cowboy - Transfer-Encoding: - - chunked Vary: - Origin, Accept-Encoding Via: @@ -118,44 +153,31 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 authorization: - XXXXXXXXXX method: GET uri: https://dev.lunchmoney.app/v1/categories response: body: - string: !!binary | - H4sIAAAAAAAAA82YXU/bMBSG/0qU6zazHdtpfAcM2C6QppFp0qapMo3bRqRx5SRsCPHf534oLpCs - NoWlEjfFb1U/Pu85PscP/oRXYiZVJkqf/Xzws9RnCMUwRAO/4AvhM/8kn8i5zAfeKVelP/BTUU5U - tqwyWfisqPN84GflOCsmciWf8rwUA1/8meR1KsZTJRfjmzqdiap9rZKV/m+zVi9TvaF0zLXcRwDB - IYiGCCUAMRAxCAOCRz/0JiZKWOn0zmZK1svmB9afxivM1dYfBzvIYYN8yotb70KII8Al1A53o3PA - pdjgZnneJyomDMAAArQH9YnOFjXCOIoa1DNezr0P3kly9Zx3s/Q9q+ap4r/5+kDekx7qP5JAyjBm - EAQjAtrp23UuvjaBPpPTqRDe9Vwuj8DaNLSz9kZnS0xRTGFD/FHcVC8i/a2oFJ/citQ7UyLNKu+M - q9TbSt815mCIaAIwwzGDOKCo4wTadS4xJ80JnBeVUBXPioUoXhzF/w961GHzdp0tMsEoig3ynUbt - w+DxMAQJAIzEOluDOO6q3a06a4NDEpuUPt/sMH1h8ktRCMVz7e31BX/vTaXyTtd43vpLpdY5FLlK - 1V0HsllqtztKIGEIsjAORnFXiWvVOdgdg+Y8LqRcpXKe3Ql137vdKSBWdt/qXDKcNsiXvBx4ieJF - uZQ609eofYOTkWVxHzmXtpEBz6a9pPkzhM40b9W5oJqSdqnkRKy79L5xKbCr4FudSxaba/uTRhl4 - J3Ulj4A3tuSNXXlNeD9vYPaxttRgi/JsTUqxHelG50JqcvYLv181ItuCNRXqoAC/4lJ6DkPs5smt - zgXajNBfhCplsb6M1f4ov7ujoV3B2upckMMd5CMozRTtGymf6GxJMYojQ/pVZIubWpXi4Ab7NW4e - DVG8ap1gpLvggEZdbm7VuTwXkB3gotIz9JVuNmZ8dpifD0lgPGIgDML9zwa7Ohc34x3ksuK1rlhH - YerI0tSRa79h3km+ZhpyzlVWzHoHJl1zQ7vOJcLG1Ncinw6zxVLJu8MT+U3CHNp10FudC7UZHVYv - QctjiDENLU0dupqamkp9vZC3fV6/GKxqr55g9hWsXZ31EwgkO/mb6ILVjP4v3gaerOpp2ay9ReH+ - 1/sIAgkKGaaMkABFXZW7Vefi8J2DUPxO5P37m1h2IsSVlZi3D/N43XdTTS1nJmo1M/16/Aun4gU/ - qBoAAA== + string: '{"categories":[{"id":658761,"name":"Another Another Test Category","description":null,"is_income":false,"exclude_from_budget":true,"exclude_from_totals":false,"updated_at":"2023-12-15T02:42:01.147Z","created_at":"2023-12-15T02:42:01.147Z","is_group":false,"group_id":658694,"archived":false,"archived_on":null,"order":null},{"id":443128,"name":"Groceries","description":"Test Category Description Updated","is_income":false,"exclude_from_budget":true,"exclude_from_totals":false,"updated_at":"2023-03-07T02:10:27.268Z","created_at":"2023-03-07T02:10:27.268Z","is_group":false,"group_id":658694,"archived":false,"archived_on":null,"order":null},{"id":443125,"name":"Home","description":null,"is_income":false,"exclude_from_budget":false,"exclude_from_totals":false,"updated_at":"2023-03-07T02:09:42.960Z","created_at":"2023-03-07T02:09:42.960Z","is_group":false,"group_id":null,"archived":false,"archived_on":null,"order":null},{"id":443129,"name":"Income","description":null,"is_income":true,"exclude_from_budget":false,"exclude_from_totals":false,"updated_at":"2023-03-07T02:40:15.216Z","created_at":"2023-03-07T02:40:15.216Z","is_group":false,"group_id":null,"archived":false,"archived_on":null,"order":null},{"id":443127,"name":"Personal Care","description":null,"is_income":false,"exclude_from_budget":false,"exclude_from_totals":false,"updated_at":"2023-03-07T02:10:17.225Z","created_at":"2023-03-07T02:10:17.225Z","is_group":false,"group_id":null,"archived":false,"archived_on":null,"order":null},{"id":443126,"name":"Shopping","description":null,"is_income":false,"exclude_from_budget":false,"exclude_from_totals":false,"updated_at":"2023-03-07T02:10:12.260Z","created_at":"2023-03-07T02:10:12.260Z","is_group":false,"group_id":null,"archived":false,"archived_on":null,"order":null},{"id":658693,"name":"Test Category","description":"Test Category Description","is_income":false,"exclude_from_budget":true,"exclude_from_totals":false,"updated_at":"2023-12-15T02:32:23.352Z","created_at":"2023-12-15T02:32:23.352Z","is_group":false,"group_id":null,"archived":false,"archived_on":null,"order":null},{"id":658694,"name":"Test Category Group","description":"Test Category Group!!","is_income":false,"exclude_from_budget":true,"exclude_from_totals":false,"updated_at":"2023-12-15T02:32:24.849Z","created_at":"2023-12-15T02:32:24.849Z","is_group":true,"group_id":null,"archived":false,"archived_on":null,"order":null,"children":[{"id":658761,"name":"Another Another Test Category","description":null,"is_income":false,"exclude_from_budget":true,"exclude_from_totals":false,"updated_at":"2023-12-15T02:42:01.147Z","created_at":"2023-12-15T02:42:01.147Z","is_group":false,"group_id":658694,"archived":false,"archived_on":null,"order":null},{"id":443128,"name":"Groceries","description":"Test Category Description Updated","is_income":false,"exclude_from_budget":true,"exclude_from_totals":false,"updated_at":"2023-03-07T02:10:27.268Z","created_at":"2023-03-07T02:10:27.268Z","is_group":false,"group_id":658694,"archived":false,"archived_on":null,"order":null}]}]}' headers: Access-Control-Allow-Credentials: - 'true' Connection: - keep-alive - Content-Encoding: - - gzip Content-Type: - application/json; charset=utf-8 Date: - - Tue, 16 Nov 2021 01:56:24 GMT + - Fri, 15 Dec 2023 03:27:35 GMT Etag: - - W/"1aa8-J6Eh1EZIPff3WsMWdh+K0M/hEm0" + - W/"bf6-3cADdNauX+96ckDbRxINI6x4Zf0" + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1702610855&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=jbOtlJShgUrEu1SyJzVSXw%2BEEVmle0iQjCmXiIgczW0%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1702610855&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=jbOtlJShgUrEu1SyJzVSXw%2BEEVmle0iQjCmXiIgczW0%3D Server: - Cowboy Transfer-Encoding: @@ -166,6 +188,8 @@ interactions: - 1.1 vegur X-Powered-By: - Express + content-length: + - '3062' status: code: 200 message: OK @@ -183,14 +207,12 @@ interactions: Content-Type: - application/json User-Agent: - - python-requests/2.26.0 + - python-requests/2.29.0 method: POST - uri: https://api.pushover.net/1/messages.json?html=1&message=%3Cb%3EPayee%3A%3C%2Fb%3E+%3Ci%3ETest%3C%2Fi%3E%0A%3Cb%3EAmount%3A%3C%2Fb%3E+%3Ci%3E%24+1.00%3C%2Fi%3E%0A%3Cb%3EDate%3A%3C%2Fb%3E+%3Ci%3ESunday+September+19%2C+2021%3C%2Fi%3E%0A%3Cb%3ECategory%3A%3C%2Fb%3E+%3Ci%3ECoffee+Shops%3C%2Fi%3E%0A%3Cb%3EAccount%3A%3C%2Fb%3E+%3Ci%3ETest+Account%3C%2Fi%3E%0A%3Cb%3ECurrency%3A%3C%2Fb%3E+%3Ci%3EUSD%3C%2Fi%3E%0A%3Cb%3EStatus%3A%3C%2Fb%3E+%3Ci%3EUncleared%3C%2Fi%3E%0A%3Cb%3ENotes%3A%3C%2Fb%3E+%3Ci%3EExample+Test+Notification+from+lunchable%3C%2Fi%3E%0A%0A%3Ca+href%3D%22https%3A%2F%2Fmy.lunchmoney.app%2Ftransactions%2F2021%2F09%3Fstatus%3Dunreviewed%22%3E%3Cb%3EUncleared+Transactions+from+this+Period%3C%2Fb%3E%3C%2Fa%3E&title=Lunch+Money+Transaction&token=XXXXXXXXXX&user=XXXXXXXXXX + uri: https://api.pushover.net/1/messages.json?html=1&message=%3Cb%3EPayee%3A%3C%2Fb%3E+%3Ci%3ETest%3C%2Fi%3E%0A%3Cb%3EAmount%3A%3C%2Fb%3E+%3Ci%3E%24+1.00%3C%2Fi%3E%0A%3Cb%3EDate%3A%3C%2Fb%3E+%3Ci%3ESunday+September+19%2C+2021%3C%2Fi%3E%0A%3Cb%3ECategory%3A%3C%2Fb%3E+%3Ci%3EAnother+Another+Test+Category%3C%2Fi%3E%0A%3Cb%3EAccount%3A%3C%2Fb%3E+%3Ci%3ETest+Account%3C%2Fi%3E%0A%3Cb%3ECurrency%3A%3C%2Fb%3E+%3Ci%3EUSD%3C%2Fi%3E%0A%3Cb%3EStatus%3A%3C%2Fb%3E+%3Ci%3EUncleared%3C%2Fi%3E%0A%3Cb%3ENotes%3A%3C%2Fb%3E+%3Ci%3EExample+Test+Notification+from+lunchable%3C%2Fi%3E%0A%0A%3Ca+href%3D%22https%3A%2F%2Fmy.lunchmoney.app%2Ftransactions%2F2021%2F09%3Fstatus%3Dunreviewed%22%3E%3Cb%3EUncleared+Transactions+from+this+Period%3C%2Fb%3E%3C%2Fa%3E&title=Lunch+Money+Transaction&token=XXXXXXXXXX&user=XXXXXXXXXX response: body: - string: !!binary | - H4sIAAAAAAAAAwTBQRKAIAgAwL9wjpkUBPE3ajygxFPT39t9YUWPvaClAx6/t6+ABnINOzNPZJKK - XCxh16KYTbySDdKu8P0AAAD//wMAbJY6vj0AAAA= + string: '{"status":1,"request":"b80ebc1d-6ae8-430e-98c1-4cb53791f420"}' headers: Access-Control-Allow-Headers: - X-Requested-With, X-Prototype-Version, Origin, Accept, Content-Type, X-CSRF-Token, X-Pushover-App, Authorization @@ -203,27 +225,19 @@ interactions: CF-Cache-Status: - DYNAMIC CF-RAY: - - 6aed1a47bf8f7ada-MCI + - 835b9778c9ac4de2-MCI Cache-Control: - - max-age=0, private, must-revalidate + - no-cache Connection: - keep-alive - Content-Encoding: - - gzip Content-Type: - application/json; charset=utf-8 Date: - - Tue, 16 Nov 2021 01:56:25 GMT - ETag: - - W/"e4886d0fdd75eb017928d9f18fbfc234" - Expect-CT: - - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" + - Fri, 15 Dec 2023 03:27:35 GMT Referrer-Policy: - strict-origin-when-cross-origin Server: - cloudflare - Strict-Transport-Security: - - max-age=31536000 Transfer-Encoding: - chunked X-Content-Type-Options: @@ -232,21 +246,18 @@ interactions: - noopen X-Frame-Options: - SAMEORIGIN - - DENY X-Limit-App-Limit: - '10000' X-Limit-App-Remaining: - '9939' X-Limit-App-Reset: - - '1638338400' - X-PO-H: - - a + - '1704088800' X-Permitted-Cross-Domain-Policies: - none X-Request-Id: - - 6db9024c-4368-4591-a757-296e839b37a7 + - bb106ac8-e675-4c00-804b-203765b0f209 X-Runtime: - - '0.066070' + - '0.012594' X-XSS-Protection: - 1; mode=block status: