Beispiel #1
0
def test_has_children_handles_plan_index():
    """ When no project is set, hasChildren should return False """
    # Given
    model = TreeModel()
    project = ResearchProject("")
    project.add_plan().add_task()
    model.set_project(project)

    # Then
    assert model.hasChildren(model.index(0, 0, model.plans_index)) is True
Beispiel #2
0
def test_flags_not_editable_for_ancestor_column():
    """ The ancestor column should not be editable """
    model = TreeModel()

    project = ResearchProject("")
    project.add_plan().add_task()
    model.set_project(project)

    # When
    plan_index = model.index(0, TreeModelCols.ANCESTOR, model.plans_index)
    task_index = model.index(0, TreeModelCols.ANCESTOR, plan_index)

    # Then
    assert model.flags(plan_index) & Qt.ItemIsEditable != Qt.ItemIsEditable
    assert model.flags(task_index) & Qt.ItemIsEditable != Qt.ItemIsEditable
Beispiel #3
0
def test_delete_does_nothing_on_invalid_index(qtbot):
    """ Delete removes task from underlying data structure """
    # Given
    model = TreeModel()
    project = ResearchProject("")
    project.add_plan().add_task()
    model.set_project(project)

    # When
    with qtbot.assertNotEmitted(model.rowsAboutToBeRemoved):
        with qtbot.assertNotEmitted(model.rowsRemoved):
            model.delete_node(QModelIndex())

    # Then
    assert len(project.plans) == 1
    assert len(project.plans[0].tasks) == 1
Beispiel #4
0
def test_flags_set_for_line_items():
    """ Check flags are set correctly for plans and tasks """
    # Given
    model = TreeModel()

    project = ResearchProject("")
    project.add_plan().add_task()
    model.set_project(project)

    # When
    plan_index = model.index(0, 0, model.plans_index)
    task_index = model.index(0, 0, plan_index)

    # Then
    plan_flags = int(model.flags(plan_index))
    task_flags = int(model.flags(task_index))

    assert plan_flags & Qt.ItemIsSelectable == Qt.ItemIsSelectable
    assert plan_flags & Qt.ItemIsEditable == Qt.ItemIsEditable
    assert plan_flags & Qt.ItemIsEnabled == Qt.ItemIsEnabled
    assert task_flags & Qt.ItemIsSelectable == Qt.ItemIsSelectable
    assert task_flags & Qt.ItemIsEditable == Qt.ItemIsEditable
    assert task_flags & Qt.ItemIsEnabled == Qt.ItemIsEnabled