Skip to content

Commit

Permalink
simplify test_base.py and add missing test for copy_on_validation (#329)
Browse files Browse the repository at this point in the history
  • Loading branch information
jduerholt authored Dec 21, 2023
1 parent 38d0bd1 commit 72cb785
Showing 1 changed file with 20 additions and 24 deletions.
44 changes: 20 additions & 24 deletions tests/bofire/data_models/test_base.py
Original file line number Diff line number Diff line change
@@ -1,41 +1,37 @@
import random
import uuid

import pytest
from pydantic.error_wrappers import ValidationError

from bofire.data_models.base import BaseModel


class Bla(BaseModel):
a: int = 1


@pytest.fixture
def bla():
return Bla()

class Blub(BaseModel):
b: str = "mama"

@pytest.fixture
def a():
return random.randint(10, 100)


@pytest.fixture
def b():
return str(uuid.uuid4())
class Bla(BaseModel):
a: Blub


def test_assignment_validation(bla, a):
bla.a = a
assert bla.a == a
def test_assignment_validation():
bla = Bla(a=Blub(b="mama"))
bla.a = Blub(b="papa")
assert bla.a == Blub(b="papa")


def test_assignment_validation_invalid(bla, b):
def test_assignment_validation_invalid():
bla = Bla(a=Blub(b="mama"))
with pytest.raises(ValidationError):
bla.a = b
bla.a = 42.0


def test_forbid_extra():
with pytest.raises(ValidationError):
Bla(a=2, mama="papa")
Bla(a=Blub(b="mama"), b=5)


def test_copy_on_validation():
blub = Blub(b="papa")
bla = Bla(a=blub)
assert id(blub) == id(bla.a)
blub.b = "lotta"
assert blub.b == bla.a.b == "lotta"

0 comments on commit 72cb785

Please sign in to comment.