mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-05-28 16:36:32 +02:00
[tests] add basic tests for data models
This commit is contained in:
parent
dd4db6ce0f
commit
4cd9627263
1 changed files with 53 additions and 0 deletions
53
tests/test_model.py
Normal file
53
tests/test_model.py
Normal file
|
@ -0,0 +1,53 @@
|
|||
import pytest
|
||||
|
||||
from PySide2.QtCore import QObject, Property
|
||||
|
||||
from meshroom.types.core import CoreModel
|
||||
from meshroom.types.qt import QObjectListModel, QTypedObjectListModel
|
||||
|
||||
|
||||
class DummyNode(QObject):
|
||||
|
||||
def __init__(self, name="", parent=None):
|
||||
super(DummyNode, self).__init__(parent)
|
||||
self._name = name
|
||||
|
||||
def getName(self):
|
||||
return self._name
|
||||
|
||||
name = Property(str, getName)
|
||||
|
||||
|
||||
def test_coreModel_add_remove():
|
||||
m = CoreModel()
|
||||
node = DummyNode("DummyNode_1")
|
||||
m.add(node)
|
||||
assert len(m) == 1
|
||||
assert m.get("DummyNode_1") == node
|
||||
|
||||
m.pop("DummyNode_1")
|
||||
assert len(m) == 0
|
||||
|
||||
|
||||
def test_listModel_add_remove():
|
||||
m = QObjectListModel()
|
||||
node = DummyNode("DummyNode_1")
|
||||
m.add(node)
|
||||
assert len(m) == 1
|
||||
assert m.get("DummyNode_1") == node
|
||||
|
||||
m.remove(node)
|
||||
assert len(m) == 0
|
||||
|
||||
|
||||
def test_listModel_typed_add():
|
||||
m = QTypedObjectListModel(T=DummyNode)
|
||||
assert m.roleForName('name') != -1
|
||||
|
||||
node = DummyNode("DummyNode_1")
|
||||
m.add(node)
|
||||
assert m.data(m.index(0), m.roleForName('name')) == "DummyNode_1"
|
||||
|
||||
obj = QObject()
|
||||
with pytest.raises(TypeError):
|
||||
m.add(obj)
|
Loading…
Add table
Add a link
Reference in a new issue