Ejemplo n.º 1
0
def test_new_items_have_current_tags(qApp):

    s = Document()
    s.setTags(['are', 'here', 'you'])
    layer1 = Layer(tags=['here'])
    s.addItem(layer1)
    p1 = Person(name='p1')
    assert p1.tags() == []

    layer1.setActive(True)
    assert p1.tags() == []

    p2 = Person(name='p2')
    s.addItem(p2)
    assert p1.tags() == []
    assert p2.tags() == ['here']
    
    layer2 = Layer(tags=['you'], active=True)
    s.addItem(layer2)
    assert p1.tags() == []
    assert p2.tags() == ['here']
     
    p3 = Person(name='p3')
    s.addItem(p3)
    assert p1.tags() == []
    assert p2.tags() == ['here']
    assert p3.tags() == ['here', 'you']

    layer1.setActive(False)
    p4 = Person(name='p4')
    s.addItem(p4)
    assert p1.tags() == []
    assert p2.tags() == ['here']
    assert p3.tags() == ['here', 'you']
    assert p4.tags() == ['you']
Ejemplo n.º 2
0
def test_update_set_tag_on_inspected_items_out_of_layer(qApp):
    """ Show layer with people that have emotional process
    symbols that don’t have the layer’s tags, inspect those
    symbols from personal timeline, add tag for the layer -> symbols don’t appear.
    """
    tags = ['here']
    s = Document()
    s.setTags(tags)
    layer1 = Layer(tags=tags)
    s.addItem(layer1)
    p1 = Person(name='p1', tags=tags)
    p2 = Person(name='p2', tags=tags)
    s.addItems(p1, p2)
    cutoff = Emotion(kind=util.ITEM_CUTOFF, personA=p1, personB=p2)
    s.addItems(cutoff)
    layer1.setActive(True)
    date = QDate.currentDate()
    assert p1.shouldShowFor(date, tags) == True
    assert p2.shouldShowFor(date, tags) == True
    assert cutoff.shouldShowFor(date, tags) == False
    assert cutoff.isVisible() == False

    # Simulate inspecting a hidden emotion from person props
    cutoff.setTags(tags)
    assert cutoff.shouldShowFor(date, tags) == True
    assert cutoff.isVisible() == True
Ejemplo n.º 3
0
def test_hasActiveLayers(qApp):
    document = Document()
    assert document.hasActiveLayers == False
    
    layer = Layer(active=True)
    document.addItem(layer)
    assert document.hasActiveLayers == True

    layer.setActive(False)
    assert document.hasActiveLayers == False
Ejemplo n.º 4
0
def test_rename_tag_retains_tag_on_items(qApp):

    s = Document()
    s.setTags(['aaa', 'ccc', 'ddd'])
    item = Item()
    s.addItem(item)
    item.setTags(['ddd'])

    s.renameTag('ddd', 'bbb')

    assert s.tags() == ['aaa', 'bbb', 'ccc']
    assert item.tags() == ['bbb']
Ejemplo n.º 5
0
def test_hasActiveLayers(qApp):
    document = Document()
    model = DocumentModel()
    model.document = document
    assert model.hasActiveLayers == document.hasActiveLayers

    layer = Layer(active=True)
    document.addItem(layer)
    assert model.hasActiveLayers == document.hasActiveLayers

    layer.setActive(False)
    assert model.hasActiveLayers == document.hasActiveLayers
Ejemplo n.º 6
0
def test_layered_property(qApp):

    document = Document()
    item = LayeredItem()
    layer = Layer(name='Layer 1')
    document.addItem(item)
    document.addItem(layer)

    assert item.num() == -1
    assert item.count == 0
    assert item.layeredCount == 0

    item.setNum(1)
    assert item.num() == 1
    assert item.count == 1
    assert item.layeredCount == 0

    layer.setActive(True)
    assert item.num() == 1
    assert item.count == 1
    assert item.layeredCount == 0

    item.prop('num').set(2)
    # item.setNum(2)
    assert item.num() == 2
    assert item.count == 2
    assert item.layeredCount == 1

    layer.setActive(False)
    assert item.num() == 1
    assert item.count == 3
    assert item.layeredCount == 1

    layer.setActive(True)
    assert item.num() == 2
    assert item.count == 4
    assert item.layeredCount == 2

    item.prop('num').reset()
    assert item.num() == 1
    assert item.count == 5
    assert item.layeredCount == 2

    layer.setActive(False)
    assert item.num() == 1
    assert item.count == 5
    assert item.layeredCount == 2
Ejemplo n.º 7
0
def test_save_load_delete_items(qtbot, qApp):
    """ ItemDetails and SeparationIndicator that were saved to disk were
    not retaining ids stored in the fd, causing addItem() to asign new ids.
    Then item properties in layers would be out of sync, etc.
    Fixed by not adding items until after read().
    """
    document = Document()
    person = Person()
    person.setDiagramNotes('here are some notes')
    document.addItem(person)
    data = {}
    document.write(data)
    bdata = pickle.dumps(data)
    #
    document = Document()
    document.read(data)
    ## added to ensure that ItemDetails|SeparationIndicator id's match the id's in the file
    for id, item in document.itemRegistry.items():
        assert id == item.id
    document.selectAll()
    qtbot.clickYesAfter(lambda: document.removeSelection()) # would throw exception
Ejemplo n.º 8
0
def test_rename_tag_retains_tag_on_items(qApp):

    s = Document()
    s.setTags(['aaa', 'ccc', 'ddd'])
    item = Item()
    s.addItem(item)
    item.setTags(['ddd'])

    model = TagsModel()
    model.items = [item]
    model.document = s
    assert model.data(model.index(2, 0), model.NameRole) == 'ddd'

    dataChanged = util.Condition()
    model.dataChanged.connect(dataChanged)
    modelReset = util.Condition()
    model.modelReset.connect(modelReset)

    model.setData(model.index(2, 0), 'bbb', model.NameRole)

    assert s.tags() == ['aaa', 'bbb', 'ccc']
    assert item.tags() == ['bbb']
    assert modelReset.callCount == 1
    assert dataChanged.callCount == 0