Skip to content

Commit

Permalink
updates from discussion in PR #21
Browse files Browse the repository at this point in the history
* add ssm fixture
* better SapSequenceError message
  • Loading branch information
adamshire123 committed Mar 21, 2023
1 parent cdae499 commit f897d35
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 12 deletions.
5 changes: 4 additions & 1 deletion sapinvoices/sap.py
Original file line number Diff line number Diff line change
Expand Up @@ -586,7 +586,10 @@ def generate_next_sap_sequence_number() -> str:
sap_sequence_parameter = ssm.get_parameter_value(sap_config["SAP_SEQUENCE_NUM"])
split_parameter = sap_sequence_parameter.split(",")
if len(split_parameter[0]) < 3:
raise SapSequenceError("SAP sequence number must be three or more digits.")
raise SapSequenceError(
f"Invalid SAP sequence: '{split_parameter[0]}', number must be three or more"
"digits."
)
return str(int(split_parameter[0]) + 1)


Expand Down
6 changes: 6 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
from requests import HTTPError, Response

from sapinvoices.alma import AlmaClient
from sapinvoices.ssm import SSM


@pytest.fixture(autouse=True)
Expand Down Expand Up @@ -51,6 +52,11 @@ def alma_client():
return AlmaClient()


@pytest.fixture()
def ssm_client() -> SSM:
return SSM()


@pytest.fixture(autouse=True)
def mocked_ses():
with mock_ses():
Expand Down
19 changes: 8 additions & 11 deletions tests/test_sap.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import pytest

from sapinvoices import sap
from sapinvoices.ssm import SSM


def test_retrieve_sorted_invoices(alma_client):
Expand Down Expand Up @@ -561,36 +560,34 @@ def test_generate_sap_control(sap_data_file):
assert len(sap_control.encode("utf-8")) == 113


def test_generate_next_sap_sequence_number():
ssm = SSM()
def test_generate_next_sap_sequence_number(ssm_client):
assert (
ssm.get_parameter_value("/test/example/sap_sequence")
ssm_client.get_parameter_value("/test/example/sap_sequence")
== "1001,20210722000000,ser"
)
new_sap_sequence = sap.generate_next_sap_sequence_number()
assert new_sap_sequence == "1002"


@pytest.mark.usefixtures("mocked_ssm_bad_sequence_number")
def test_generate_next_sap_sequence_number_fail():
ssm = SSM()
def test_generate_next_sap_sequence_number_fail(ssm_client):
assert (
ssm.get_parameter_value("/test/example/sap_sequence") == "1,20210722000000,ser"
ssm_client.get_parameter_value("/test/example/sap_sequence")
== "1,20210722000000,ser"
)
with pytest.raises(sap.SapSequenceError):
sap.generate_next_sap_sequence_number()


def test_update_sap_sequence():
ssm = SSM()
def test_update_sap_sequence(ssm_client):
assert (
ssm.get_parameter_value("/test/example/sap_sequence")
ssm_client.get_parameter_value("/test/example/sap_sequence")
== "1001,20210722000000,ser"
)
response = sap.update_sap_sequence("1002", datetime(2021, 7, 23), "mono")
assert response["ResponseMetadata"]["HTTPStatusCode"] == 200
assert (
ssm.get_parameter_value("/test/example/sap_sequence")
ssm_client.get_parameter_value("/test/example/sap_sequence")
== "1002,20210723000000,mono"
)

Expand Down

0 comments on commit f897d35

Please sign in to comment.