コード例 #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']
コード例 #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
コード例 #3
0
def test_set_active(qApp):
    document = Document()
    model = TagsModel()
    model.document = document
    item1 = Item()
    item2 = Item()
    model.items = [item1, item2]

    document.setTags(['here', 'we', 'are'])
    assert item1.tags() == []
    assert item2.tags() == []

    def set(row, value):
        assert model.setData(model.index(row, 0), value,
                             model.ActiveRole) is True

    set(0, True)
    assert item1.tags() == ['are']
    assert item2.tags() == ['are']

    set(2, True)
    assert item1.tags() == ['are', 'we']
    assert item2.tags() == ['are', 'we']

    set(0, False)
    assert item1.tags() == ['we']
    assert item2.tags() == ['we']

    set(2, False)
    assert item1.tags() == []
    assert item2.tags() == []
コード例 #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']
コード例 #5
0
def __test_getPrintRect(qApp): # was always changing by a few pixels...
    s = Document()
    s.setTags(['NW', 'NE', 'SW', 'SE'])
    northWest = Person(name='NW', pos=QPointF(-1000, -1000), tags=['NW'])
    northEast = Person(name='NE', pos=QPointF(1000, -1000), tags=['NE'])
    southWest = Person(name='SW', pos=QPointF(-1000, 1000), tags=['SW'])
    southEast = Person(name='SE', pos=QPointF(1000, 1000), tags=['SE'])
    s.addItems(northWest, northEast, southWest, southEast)

    fullRect = s.getPrintRect()
    assert fullRect == QRectF(-1162.5, -1181.25, 2407.5, 2343.75)

    nwRect = s.getPrintRect(forTags=['NW'])
    assert nwRect == QRectF(-1162.5, -1181.25, 417.5, 343.75)
コード例 #6
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