Skip to content

Commit

Permalink
✅ [#100] Tests with required service fields and all service fields
Browse files Browse the repository at this point in the history
  • Loading branch information
stevenbal committed Nov 19, 2024
1 parent 978df2c commit 6bb68b2
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 4 deletions.
20 changes: 20 additions & 0 deletions tests/files/setup_config_services_all_fields.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
zgw_consumers_config_enable: True
zgw_consumers:
services:
- identifier: objecten-test
label: Objecten API test
api_root: http://objecten.local/api/v1/
api_connection_check_path: objects
api_type: orc
auth_type: api_key
header_key: Authorization
header_value: Token foo
client_id: client
secret: super-secret
nlx: http://some-outway-adress.local:8080/
user_id: open-formulieren
user_representation: Open Formulieren
timeout: 5
# NOT SUPPORTED YET
# client_certificatie: ...
# server_certificatie: ...
7 changes: 7 additions & 0 deletions tests/files/setup_config_services_required_fields.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
zgw_consumers_config_enable: True
zgw_consumers:
services:
- identifier: objecten-test
label: Objecten API test
api_root: http://objecten.local/api/v1/
api_type: orc
67 changes: 63 additions & 4 deletions tests/test_configuration_steps.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
import pytest
from django_setup_configuration.test_utils import load_step_config_from_source

from zgw_consumers.constants import APITypes, AuthTypes
from zgw_consumers.contrib.setup_configuration.steps import ServiceConfigurationStep
from zgw_consumers.models import Service
from zgw_consumers.test.factories import ServiceFactory

CONFIG_FILE_PATH = "tests/files/setup_config_services.yaml"
CONFIG_FILE_PATH_REQUIRED_FIELDS = (
"tests/files/setup_config_services_required_fields.yaml"
)
CONFIG_FILE_PATH_ALL_FIELDS = "tests/files/setup_config_services_all_fields.yaml"


@pytest.fixture()
Expand All @@ -28,17 +33,17 @@ def test_execute_configuration_step_success(step_config_model):
assert objects_service.slug == "objecten-test"
assert objects_service.label == "Objecten API test"
assert objects_service.api_root == "http://objecten.local/api/v1/"
assert objects_service.api_type == "orc"
assert objects_service.auth_type == "api_key"
assert objects_service.api_type == APITypes.orc
assert objects_service.auth_type == AuthTypes.api_key
assert objects_service.header_key == "Authorization"
assert objects_service.header_value == "Token foo"
assert objects_service.timeout == 10

assert zaken_service.slug == "zaken-test"
assert zaken_service.label == "Zaken API test"
assert zaken_service.api_root == "http://zaken.local/api/v1/"
assert zaken_service.api_type == "zrc"
assert zaken_service.auth_type == "zgw"
assert zaken_service.api_type == APITypes.zrc
assert zaken_service.auth_type == AuthTypes.zgw
assert zaken_service.client_id == "client"
assert zaken_service.secret == "super-secret"
assert zaken_service.timeout == 10
Expand Down Expand Up @@ -69,3 +74,57 @@ def test_execute_configuration_step_update_existing(step_config_model):
assert zaken_service.slug == "zaken-test"
assert zaken_service.label == "Zaken API test"
assert zaken_service.api_root == "http://zaken.local/api/v1/"


@pytest.mark.django_db
def test_execute_configuration_step_with_required_fields():
step_config_model = load_step_config_from_source(
ServiceConfigurationStep, CONFIG_FILE_PATH_REQUIRED_FIELDS
)
step = ServiceConfigurationStep()

assert not step.is_configured(step_config_model)

step.execute(step_config_model)

assert Service.objects.count() == 1

objects_service = Service.objects.get()

assert objects_service.slug == "objecten-test"
assert objects_service.label == "Objecten API test"
assert objects_service.api_root == "http://objecten.local/api/v1/"
assert objects_service.api_type == APITypes.orc
assert objects_service.auth_type == AuthTypes.zgw
assert objects_service.timeout == 10


@pytest.mark.django_db
def test_execute_configuration_step_with_all_fields():
step_config_model = load_step_config_from_source(
ServiceConfigurationStep, CONFIG_FILE_PATH_ALL_FIELDS
)
step = ServiceConfigurationStep()

assert not step.is_configured(step_config_model)

step.execute(step_config_model)

assert Service.objects.count() == 1

objects_service = Service.objects.get()

assert objects_service.slug == "objecten-test"
assert objects_service.label == "Objecten API test"
assert objects_service.api_root == "http://objecten.local/api/v1/"
assert objects_service.api_type == APITypes.orc
assert objects_service.auth_type == AuthTypes.api_key
assert objects_service.api_connection_check_path == "objects"
assert objects_service.header_key == "Authorization"
assert objects_service.header_value == "Token foo"
assert objects_service.client_id == "client"
assert objects_service.secret == "super-secret"
assert objects_service.nlx == "http://some-outway-adress.local:8080/"
assert objects_service.user_id == "open-formulieren"
assert objects_service.user_representation == "Open Formulieren"
assert objects_service.timeout == 5

0 comments on commit 6bb68b2

Please sign in to comment.