Skip to content
Snippets Groups Projects
Commit fad9c43c authored by Florian Spreckelsen's avatar Florian Spreckelsen
Browse files

TST: Extend unit tests

parent f4edcc84
No related branches found
No related tags found
3 merge requests!159Release 0.16.o,!155Review filter lists and compare_entities,!137Allow property and parent lists to be filtered.
Pipeline #50074 failed
......@@ -25,6 +25,7 @@
import os
# pylint: disable=missing-docstring
import unittest
from pytest import raises
import linkahead
from linkahead import (INTEGER, Entity, Property, Record, RecordType,
......@@ -105,20 +106,62 @@ def test_parent_list():
pl = linkahead.common.models.ParentList([p1])
assert p1 in pl
assert RecordType(name="A") in pl
assert not RecordType(id=101) in pl
assert pl.index(RecordType(name="A")) == 0
assert RecordType(id=101) not in pl
pl.append(RecordType(id=101))
assert RecordType(name="A") in pl
assert RecordType(id=101) in pl
assert not RecordType(id=102) in pl
assert len(pl) == 2
assert pl.index(RecordType(id=101))
assert RecordType(id=102) not in pl
pl.append(RecordType(id=103, name='B'))
assert RecordType(name="A") in pl
assert RecordType(name="B") in pl
assert RecordType(id=101) in pl
assert RecordType(id=103) in pl
assert not RecordType(id=105, name="B") in pl
assert len(pl) == 3
assert pl.index(RecordType(id=103, name='B')) == 2
assert pl.index(RecordType(id=103)) == 2
assert pl.index(RecordType(name='B')) == 2
assert RecordType(id=105, name="B") not in pl
# test removal
# remove by id only, even though element in parent list has name and id
pl.remove(RecordType(id=103))
assert len(pl) == 2
assert RecordType(name='B') not in pl
assert RecordType(id=103) not in pl
# Same for removal by name
pl.append(RecordType(id=103, name='B'))
assert len(pl) == 3
pl.remove(RecordType(name='B'))
assert len(pl) == 2
assert RecordType(name='B') not in pl
assert RecordType(id=103) not in pl
# And an error if the element is wrongly specified
pl.append(RecordType(id=103, name='B'))
assert len(pl) == 3
with raises(ValueError) as ve:
pl.remove(RecordType(id=105, name='B'))
assert "not in list" in str(ve.value)
assert len(pl) == 3
with raises(ValueError) as ve:
pl.remove(RecordType(id=103, name='C'))
assert "not in list" in str(ve.value)
assert len(pl) == 3
# TODO also check other built-in list functions: insert, pop, clear, count
# TODO also check pl1 == pl2
# TODO what is with RecordType(name='A', id=100) in pl? I.e., fitting name,
# but id of corresponding element in pl is None. Same of course for
# RecordType(name='C', id=101) in pl, i.e. fitting id, but name of element
# in pl is None.
# TODO what is with the ambiguous RecordType(name='A', id=101) in pl?
def test_property_list():
# TODO: Resolve parent-list TODOs, the transfer to here.
# TODO: What other considerations have to be done with properties?
p1 = Property(name="A")
pl = linkahead.common.models.PropertyList()
pl.append(p1)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment