From d26dd9b52a05d2d3f24559898e7ecc0b71595e43 Mon Sep 17 00:00:00 2001 From: Alejandro Uribe Date: Tue, 28 Nov 2023 23:28:58 -0600 Subject: [PATCH 1/5] Add tag function Update README.md Add add_tag function to put tag on an existing document Add test of add_tag function Update .gitignore to ignore idea files from PyCharm Update User-Agent version --- .gitignore | 1 + NEWS.md | 3 +++ README.md | 2 ++ tests/test_tags.py | 24 ++++++++++++++++++++++++ veryfi/client.py | 13 ++++++++++++- 5 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 tests/test_tags.py diff --git a/.gitignore b/.gitignore index c61cfec..8d56382 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .coverage tests/__pycache__/ veryfi/__pycache__/ +.idea/* diff --git a/NEWS.md b/NEWS.md index 077abda..cfc09e6 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,8 @@ CHANGES ======= +3.2.0 +----- +* Add support to add tags on existing documents 3.1.1 ----- diff --git a/README.md b/README.md index 3bf35db..0024bc9 100755 --- a/README.md +++ b/README.md @@ -152,6 +152,8 @@ veryfi_client.update_document(id=12345, vendor=new_vendor, category=new_category ## Need help? +Visit https://docs.veryfi.com/ to access integration guides and usage notes in the Veryfi API Documentation Portal + If you run into any issue or need help installing or using the library, please contact support@veryfi.com. If you found a bug in this library or would like new features added, then open an issue or pull requests against this repo! diff --git a/tests/test_tags.py b/tests/test_tags.py new file mode 100644 index 0000000..cdace63 --- /dev/null +++ b/tests/test_tags.py @@ -0,0 +1,24 @@ +import pytest +import responses + +from veryfi import * + +@pytest.mark.parametrize("client_secret", [None, "s"]) +@responses.activate +def test_tags(client_secret): + mock_doc_id = 169985445 + mock_resp = { + "id": 6673474, + "name": "tag_123" + } + client = Client(client_id="v", client_secret=client_secret, username="o", api_key="c") + responses.add( + responses.PUT, + f"{client.versioned_url}/partner/documents/{mock_doc_id}/tags/", + json=mock_resp, + status=200, + ) + assert ( + client.add_tag(mock_doc_id, "tag_123") + == mock_resp + ) diff --git a/veryfi/client.py b/veryfi/client.py index 760a575..f24ae8c 100644 --- a/veryfi/client.py +++ b/veryfi/client.py @@ -61,7 +61,7 @@ def _get_headers(self) -> Dict: :return: Dictionary with headers """ final_headers = { - "User-Agent": "Python Veryfi-Python/3.0.0", + "User-Agent": "Python Veryfi-Python/3.2.0", "Accept": "application/json", "Content-Type": "application/json", "Client-Id": self.client_id, @@ -387,3 +387,14 @@ def delete_line_item(self, document_id, line_item_id): endpoint_name = f"/documents/{document_id}/line-items/{line_item_id}" request_arguments = {} self._request("DELETE", endpoint_name, request_arguments) + + def add_tag(self, document_id, tag_name): + """ + Add a new tag on an existing document. + :param document_id: ID of the document you'd like to update + :param tag_name: name of the new tag + :return: Added tag data + """ + endpoint_name = f"/documents/{document_id}/tags/" + request_arguments = {"name": tag_name} + return self._request("PUT", endpoint_name, request_arguments) From 11d1ea6f6422089d2a4bf94572db67c27a7306b0 Mon Sep 17 00:00:00 2001 From: Alejandro Uribe Date: Tue, 28 Nov 2023 23:40:09 -0600 Subject: [PATCH 2/5] Update test_tags.py --- tests/test_tags.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/tests/test_tags.py b/tests/test_tags.py index cdace63..0e27eb7 100644 --- a/tests/test_tags.py +++ b/tests/test_tags.py @@ -3,14 +3,12 @@ from veryfi import * + @pytest.mark.parametrize("client_secret", [None, "s"]) @responses.activate def test_tags(client_secret): mock_doc_id = 169985445 - mock_resp = { - "id": 6673474, - "name": "tag_123" - } + mock_resp = {"id": 6673474, "name": "tag_123"} client = Client(client_id="v", client_secret=client_secret, username="o", api_key="c") responses.add( responses.PUT, @@ -18,7 +16,4 @@ def test_tags(client_secret): json=mock_resp, status=200, ) - assert ( - client.add_tag(mock_doc_id, "tag_123") - == mock_resp - ) + assert client.add_tag(mock_doc_id, "tag_123") == mock_resp From 1124e5149067c7ff68ceab83589ed5a1dc607072 Mon Sep 17 00:00:00 2001 From: Alejandro Uribe Date: Wed, 29 Nov 2023 09:48:55 -0600 Subject: [PATCH 3/5] Update test_tags.py --- tests/test_tags.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/test_tags.py b/tests/test_tags.py index 0e27eb7..025cbde 100644 --- a/tests/test_tags.py +++ b/tests/test_tags.py @@ -10,8 +10,7 @@ def test_tags(client_secret): mock_doc_id = 169985445 mock_resp = {"id": 6673474, "name": "tag_123"} client = Client(client_id="v", client_secret=client_secret, username="o", api_key="c") - responses.add( - responses.PUT, + responses.put( f"{client.versioned_url}/partner/documents/{mock_doc_id}/tags/", json=mock_resp, status=200, From 74360ef666844bc7fa80f0a68b5cd5b1a975cd94 Mon Sep 17 00:00:00 2001 From: Alejandro Uribe Date: Wed, 29 Nov 2023 11:12:59 -0600 Subject: [PATCH 4/5] Move test_tags to test_client --- tests/test_client.py | 13 +++++++++++++ tests/test_tags.py | 18 ------------------ 2 files changed, 13 insertions(+), 18 deletions(-) delete mode 100644 tests/test_tags.py diff --git a/tests/test_client.py b/tests/test_client.py index 62c8c55..dcc5d5b 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -367,3 +367,16 @@ def test_get_documents(): **{"created_lt": "2021-07-22+00:00:00"}, ) assert d == mock + +@responses.activate +def test_tags(): + mock_doc_id = 169985445 + mock_resp = {"id": 6673474, "name": "tag_123"} + client = Client(client_id="v", client_secret="w", username="o", api_key="c") + responses.put( + f"{client.versioned_url}/partner/documents/{mock_doc_id}/tags/", + json=mock_resp, + status=200, + ) + d = client.add_tag(mock_doc_id, "tag_123") + assert d == mock_resp diff --git a/tests/test_tags.py b/tests/test_tags.py deleted file mode 100644 index 025cbde..0000000 --- a/tests/test_tags.py +++ /dev/null @@ -1,18 +0,0 @@ -import pytest -import responses - -from veryfi import * - - -@pytest.mark.parametrize("client_secret", [None, "s"]) -@responses.activate -def test_tags(client_secret): - mock_doc_id = 169985445 - mock_resp = {"id": 6673474, "name": "tag_123"} - client = Client(client_id="v", client_secret=client_secret, username="o", api_key="c") - responses.put( - f"{client.versioned_url}/partner/documents/{mock_doc_id}/tags/", - json=mock_resp, - status=200, - ) - assert client.add_tag(mock_doc_id, "tag_123") == mock_resp From 8dda212216a7b7700eb27f1602cf2f4b29f76625 Mon Sep 17 00:00:00 2001 From: Alejandro Uribe Date: Wed, 29 Nov 2023 11:15:56 -0600 Subject: [PATCH 5/5] Update test_client.py --- tests/test_client.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_client.py b/tests/test_client.py index dcc5d5b..8c95e8f 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -368,6 +368,7 @@ def test_get_documents(): ) assert d == mock + @responses.activate def test_tags(): mock_doc_id = 169985445