95de5cbb30
Publish Python Package / continuous-integration (3.10) (push) Has been cancelled
Publish Python Package / continuous-integration (3.11) (push) Has been cancelled
Publish Python Package / continuous-integration (3.12) (push) Has been cancelled
Publish Python Package / continuous-integration (3.13) (push) Has been cancelled
Publish Python Package / Build and Publish Python Package (push) Has been cancelled
* add text class and tests * formatting * fix default values * comments * comment * sort imports * import alignments * compare properties, not Base objects * revert irrelevant changes * tests * use correct fixture * fix tests property
101 lines
3.7 KiB
Python
101 lines
3.7 KiB
Python
import pytest
|
|
|
|
from specklepy.core.api.operations import deserialize, serialize
|
|
from specklepy.objects.annotation import AlignmentHorizontal, AlignmentVertical, Text
|
|
from specklepy.objects.geometry import Plane, Point, Vector
|
|
from specklepy.objects.models.units import Units
|
|
|
|
|
|
@pytest.fixture
|
|
def sample_point() -> Point:
|
|
return Point(x=0.0, y=0.0, z=0.0, units=Units.m)
|
|
|
|
|
|
@pytest.fixture
|
|
def sample_plane(sample_point: Point) -> Plane:
|
|
normal = Vector(x=0.0, y=0.0, z=1.0, units=Units.m)
|
|
xdir = Vector(x=1.0, y=0.0, z=0.0, units=Units.m)
|
|
ydir = Vector(x=0.0, y=1.0, z=0.0, units=Units.m)
|
|
return Plane(
|
|
origin=sample_point, normal=normal, xdir=xdir, ydir=ydir, units=Units.m
|
|
)
|
|
|
|
|
|
@pytest.fixture
|
|
def sample_text(sample_point: Point) -> Text:
|
|
return Text(value="text", origin=sample_point, height=0.5, units=Units.m)
|
|
|
|
|
|
@pytest.fixture
|
|
def sample_text_all_properties(sample_point: Point, sample_plane: Plane) -> Text:
|
|
return Text(
|
|
value="text",
|
|
origin=sample_point,
|
|
height=0.5,
|
|
alignmentH=AlignmentHorizontal.Center,
|
|
alignmentV=AlignmentVertical.Center,
|
|
plane=sample_plane,
|
|
maxWidth=20,
|
|
units=Units.m,
|
|
)
|
|
|
|
|
|
def test_text_creation_minimal(sample_point: Point):
|
|
text_value = "text"
|
|
|
|
text_obj = Text(value=text_value, origin=sample_point, height=0.5, units=Units.m)
|
|
assert text_obj.value == text_value
|
|
assert text_obj.origin == sample_point
|
|
assert text_obj.height == 0.5
|
|
assert text_obj.alignmentH == AlignmentHorizontal.Left
|
|
assert text_obj.alignmentV == AlignmentVertical.Top
|
|
assert text_obj.plane is None
|
|
assert text_obj.maxWidth is None
|
|
assert text_obj.units == Units.m.value
|
|
|
|
|
|
def test_text_creation_extended(sample_point: Point, sample_plane: Plane):
|
|
text_value = "text"
|
|
max_width = 20
|
|
|
|
text_obj = Text(
|
|
value=text_value,
|
|
origin=sample_point,
|
|
height=0.5,
|
|
alignmentH=AlignmentHorizontal.Center,
|
|
alignmentV=AlignmentVertical.Center,
|
|
plane=sample_plane,
|
|
maxWidth=max_width,
|
|
units=Units.m,
|
|
)
|
|
assert text_obj.value == text_value
|
|
assert text_obj.origin == sample_point
|
|
assert text_obj.height == 0.5
|
|
assert text_obj.alignmentH == AlignmentHorizontal.Center
|
|
assert text_obj.alignmentV == AlignmentVertical.Center
|
|
assert text_obj.plane == sample_plane
|
|
assert text_obj.maxWidth == max_width
|
|
assert text_obj.units == Units.m.value
|
|
|
|
|
|
def test_point_serialization(sample_text_all_properties: Text):
|
|
serialized = serialize(sample_text_all_properties)
|
|
deserialized = deserialize(serialized)
|
|
|
|
assert isinstance(deserialized, Text)
|
|
assert deserialized.value == sample_text_all_properties.value
|
|
assert deserialized.origin.x == sample_text_all_properties.origin.x
|
|
assert deserialized.origin.y == sample_text_all_properties.origin.y
|
|
assert deserialized.origin.z == sample_text_all_properties.origin.z
|
|
assert deserialized.height == sample_text_all_properties.height
|
|
assert deserialized.alignmentH == sample_text_all_properties.alignmentH
|
|
assert deserialized.alignmentV == sample_text_all_properties.alignmentV
|
|
assert deserialized.plane.origin.x == sample_text_all_properties.plane.origin.x
|
|
assert deserialized.plane.origin.y == sample_text_all_properties.plane.origin.y
|
|
assert deserialized.plane.origin.z == sample_text_all_properties.plane.origin.z
|
|
assert deserialized.plane.normal.x == sample_text_all_properties.plane.normal.x
|
|
assert deserialized.plane.normal.y == sample_text_all_properties.plane.normal.y
|
|
assert deserialized.plane.normal.z == sample_text_all_properties.plane.normal.z
|
|
assert deserialized.maxWidth == sample_text_all_properties.maxWidth
|
|
assert deserialized.units == sample_text_all_properties.units
|