Changeset a17e4f6 in flexoentity for tests


Ignore:
Timestamp:
01/15/26 11:19:14 (4 hours ago)
Author:
Enrico Schwass <ennoausberlin@…>
Branches:
master
Parents:
a1c4ba3
Message:

add fork method to FlexoEntity to simplify copy / paste operations

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tests/test_id_lifecycle.py

    ra1c4ba3 ra17e4f6  
    115115    with pytest.raises(RuntimeError, match="mark obsolete"):
    116116        q.bump_version()
     117
     118def test_fork_creates_independent_domain(sample_domain):
     119    original = sample_domain
     120
     121    forked = original.fork(domain_id="DST")
     122
     123    # ─── identity ───────────────────────────────────────────────────────
     124    assert forked is not original
     125    assert isinstance(forked.flexo_id, FlexOID)
     126    assert forked.flexo_id != original.flexo_id
     127
     128    # ─── lifecycle reset ────────────────────────────────────────────────
     129    assert forked.state == EntityState.DRAFT
     130    assert forked.version == 1
     131
     132    # ─── provenance ─────────────────────────────────────────────────────
     133    assert forked.origin == str(original.flexo_id)
     134
     135    # ─── domain reassigned ──────────────────────────────────────────────
     136    assert forked.domain_id == "DST"
     137
     138def test_fork_does_not_mutate_original(sample_domain):
     139    original = sample_domain
     140    original_id = original.flexo_id
     141    original_fp = original.fingerprint
     142
     143    _ = original.fork(domain_id="DST")
     144
     145    assert original.flexo_id == original_id
     146    assert original.fingerprint == original_fp
     147    assert original.origin is None
     148
     149def test_fork_does_not_shadow_state(sample_domain):
     150    forked = sample_domain.fork(domain_id="DST")
     151
     152    # No instance attribute allowed
     153    assert "state" not in forked.__dict__
     154
     155    # Property must still work
     156    assert forked.state == EntityState.DRAFT
     157
     158def test_fork_without_origin(sample_domain):
     159    forked = sample_domain.fork(domain_id="DST", keep_origin=False)
     160
     161    assert forked.origin is None
Note: See TracChangeset for help on using the changeset viewer.