Skip to content

bgr/PyQt5_modeltest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ModelTest provides a way to check for common errors in implementations of  <a href="QAbstractItemModel">https://doc.trolltech.com/4/qabstractitemmodel.html</a>.


ModelTest continuously checks a model as it changes, helping to verify the state and catching many common errors the moment they show up such as:
<ul>
<li>Verifing X number of rows have been inserted in the correct place after the signal rowsAboutToBeInserted() says X rows will be inserted.</li>
<li>The parent of the first index of the first row is a QModelIndex()</li>
<li>Calling index() twice in a row with the same values will return the same QModelIndex</li>
<li>If rowCount() says there are X number of rows, model test will verify that is true.
<li>Many possible off by one bugs</li>
<li>hasChildren() returns true if rowCount() is greater then zero.</li>
<li>and many more...</li>
</ul>

---

To Use the model test do the following:

1) Include the modeltest.py file in your project directory

2) Then in your source import "modeltest" and instantiate ModelTest with your model so the test can live for the lifetime of your model.  For example:  

from modeltest import ModelTest

self.model = QDirModel(self)
self.modeltest = ModelTest(self.model, self);

3) That is it.  When the test finds a problem it will throw an AssertionError.  modeltest.py contains some hints on how to fix problems that the test finds.

About

PyQt5 port of modeltest.py

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages