Skip to content

Commit

Permalink
Merge pull request #61 from davidvlaminck/naampad_check
Browse files Browse the repository at this point in the history
Naampad check
  • Loading branch information
davidvlaminck authored Dec 19, 2024
2 parents cda3da4 + f259f37 commit 4b038c5
Show file tree
Hide file tree
Showing 14 changed files with 733 additions and 191 deletions.
25 changes: 23 additions & 2 deletions UnitTests/OTLFieldTests/CustomFields/NaamField_test.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,29 @@
import pytest

from otlmow_model.OtlmowModel.BaseClasses.OTLObject import OTLAttribuut
from otlmow_model.OtlmowModel.Classes.ImplementatieElement.AIMNaamObject import NaamField


class NaamClass:
def __init__(self):
super().__init__()

self._naam = OTLAttribuut(field=NaamField,
naam='naam',
label='naam',
objectUri='https://wegenenverkeer.data.vlaanderen.be/ns/implementatieelement#AIMNaamObject.naam',
definition='De mensleesbare naam van een asset zoals dit bv. ook terug te vinden is op een etiket op het object zelf. De assetbeheerder kent deze naam toe of geeft de opdracht om deze toe te kennen. Indien een object een algemeen gangbare naam heeft zoals bv. bij een waterloop dan wordt deze gebruikt.',
owner=self)

@property
def naam(self) -> str:
"""De mensleesbare naam van een asset zoals dit bv. ook terug te vinden is op een etiket op het object zelf. De assetbeheerder kent deze naam toe of geeft de opdracht om deze toe te kennen. Indien een object een algemeen gangbare naam heeft zoals bv. bij een waterloop dan wordt deze gebruikt."""
return self._naam.get_waarde()

@naam.setter
def naam(self, value):
self._naam.set_waarde(value, owner=self)


@pytest.mark.parametrize("value, expected, id", [
("validName123", True, "valid_alphanumeric"),
("valid.name-123", True, "valid_with_special_chars"),
Expand All @@ -11,5 +32,5 @@
("invalid name!", False, "invalid_with_space_and_exclamation"),
("invalid@name", False, "invalid_with_at_symbol")])
def test_validate(value, expected, id):
result = NaamField.validate(value, None)
result = NaamField.validate(value, NaamClass()._naam)
assert result == expected, f"Test case '{id}' failed: expected {expected} but got {result}"
85 changes: 85 additions & 0 deletions UnitTests/OTLFieldTests/CustomFields/NaampadField_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
import pytest
import re
from otlmow_model.OtlmowModel.BaseClasses.OTLObject import OTLAttribuut

from otlmow_model.OtlmowModel.Classes.ImplementatieElement.AIMNaamObject import NaamField
from otlmow_model.OtlmowModel.Classes.ImplementatieElement.NaampadObject import NaampadField


class NaampadClass:
def __init__(self):
super().__init__()

self._naam = OTLAttribuut(field=NaamField,
naam='naam',
label='naam',
objectUri='https://wegenenverkeer.data.vlaanderen.be/ns/implementatieelement#AIMNaamObject.naam',
definition='De mensleesbare naam van een asset zoals dit bv. ook terug te vinden is op een etiket op het object zelf. De assetbeheerder kent deze naam toe of geeft de opdracht om deze toe te kennen. Indien een object een algemeen gangbare naam heeft zoals bv. bij een waterloop dan wordt deze gebruikt.',
owner=self)

self._naampad = OTLAttribuut(field=NaampadField,
naam='naampad',
label='naampad',
objectUri='https://wegenenverkeer.data.vlaanderen.be/ns/implementatieelement'
'#AIMNaamObject.naampad',
definition='De mensleesbare naam van een asset zoals dit bv. ook terug te vinden is op een etiket op het object zelf. De assetbeheerder kent deze naam toe of geeft de opdracht om deze toe te kennen. Indien een object een algemeen gangbare naam heeft zoals bv. bij een waterloop dan wordt deze gebruikt.',
owner=self)

@property
def naam(self) -> str:
"""De mensleesbare naam van een asset zoals dit bv. ook terug te vinden is op een etiket op het object zelf. De assetbeheerder kent deze naam toe of geeft de opdracht om deze toe te kennen. Indien een object een algemeen gangbare naam heeft zoals bv. bij een waterloop dan wordt deze gebruikt."""
return self._naam.get_waarde()

@naam.setter
def naam(self, value):
self._naam.set_waarde(value, owner=self)

@property
def naampad(self) -> str:
"""De mensleesbare naam van een asset zoals dit bv. ook terug te vinden is op een etiket op het object zelf. De assetbeheerder kent deze naam toe of geeft de opdracht om deze toe te kennen. Indien een object een algemeen gangbare naam heeft zoals bv. bij een waterloop dan wordt deze gebruikt."""
return self._naampad.get_waarde()

@naampad.setter
def naampad(self, value):
self._naampad.set_waarde(value, owner=self)


class NaamClass:
def __init__(self):
super().__init__()

self._naam = OTLAttribuut(field=NaamField,
naam='naam',
label='naam',
objectUri='https://wegenenverkeer.data.vlaanderen.be/ns/implementatieelement#AIMNaamObject.naam',
definition='De mensleesbare naam van een asset zoals dit bv. ook terug te vinden is op een etiket op het object zelf. De assetbeheerder kent deze naam toe of geeft de opdracht om deze toe te kennen. Indien een object een algemeen gangbare naam heeft zoals bv. bij een waterloop dan wordt deze gebruikt.',
owner=self)

@property
def naam(self) -> str:
"""De mensleesbare naam van een asset zoals dit bv. ook terug te vinden is op een etiket op het object zelf. De assetbeheerder kent deze naam toe of geeft de opdracht om deze toe te kennen. Indien een object een algemeen gangbare naam heeft zoals bv. bij een waterloop dan wordt deze gebruikt."""
return self._naam.get_waarde()

@naam.setter
def naam(self, value):
self._naam.set_waarde(value, owner=self)


def test_naampad_assign():
naampad_object = NaampadClass()
naampad_object.naampad = "valid/naampad/123"
assert naampad_object.naampad == "valid/naampad/123"
naampad_object.naam = "123"
assert naampad_object.naam == "123"
naampad_object.naampad = "valid/naampad/123"
assert naampad_object.naampad == "valid/naampad/123"
with pytest.raises(ValueError):
naampad_object.naampad = "valid/naampad/456"
with pytest.raises(ValueError):
naampad_object.naam = "456"

naampad_object = NaamClass()
naampad_object.naam = "123"
assert naampad_object.naam == "123"


86 changes: 63 additions & 23 deletions UnitTests/htmlcov/class_index.html

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 4b038c5

Please sign in to comment.