Ejemplo n.º 1
0
def test_vertical_layout():
    l = pedl.VBoxLayout()
    l.addWidget(pedl.Widget(w=50,  h=100))
    l.addWidget(pedl.Widget(w=100, h=50))
    l.addWidget(pedl.Widget(w=100, h=100))

    #Default locations
    assert l.widgets[0].x == 0
    assert l.widgets[1].x == 0
    assert l.widgets[2].x == 0

    assert l.widgets[0].y == 0
    assert l.widgets[1].y == 105
    assert l.widgets[2].y == 160

    assert l.w == 100
    assert l.h == 260

    #Adjust Spacing
    l.spacing = 10
    assert l.widgets[0].y == 0
    assert l.widgets[1].y == 110
    assert l.widgets[2].y == 170
    assert l.h            == 270

    #Adjust Alignments
    l.alignment = pedl.choices.AlignmentChoice.Center
    assert l.widgets[0].x == 0
    assert l.widgets[1].x == -25
    assert l.widgets[2].x == -25
    assert l.w            == 100
    
    l.alignment = pedl.choices.AlignmentChoice.Top
    assert l.widgets[0].x == 0
    assert l.widgets[1].x == -25
    assert l.widgets[2].x == -25
    assert l.w            == 100
    
    l.alignment = pedl.choices.AlignmentChoice.Right
    assert l.widgets[0].x == 0
    assert l.widgets[1].x == -50
    assert l.widgets[2].x == -50
    assert l.w            == 100

    #Adjust Position
    l.x = 100
    l.y = 150

    assert l.widgets[0].x == 150
    assert l.widgets[1].x == 100
    assert l.widgets[2].x == 100
    assert l.w            == 100

    assert l.widgets[0].y == 150
    assert l.widgets[1].y == 260
    assert l.widgets[2].y == 320
    assert l.h            == 270
    
    assert l.x == 100
    assert l.y == 150
Ejemplo n.º 2
0
def test_compound_layout():
    h  = pedl.HBoxLayout()
    v1 = pedl.VBoxLayout()
    v2 = pedl.VBoxLayout()
    for l in (v1,v2):
        l.addWidget(pedl.Widget(w=100,h=200))
        l.addWidget(pedl.Widget(w=200,h=100))
        h.addLayout(l)

    #Check layout positioning
    assert h.widgets[0].x == 0
    assert h.widgets[1].x == 205
    assert h.widgets[0].y == 0
    assert h.widgets[1].y == 0
    assert h.w == 405
    assert h.h == 305

    #Move child alignment
    h.alignment = pedl.choices.AlignmentChoice.Bottom
    v1.spacing  = 30
    assert h.widgets[0].y == 0
    assert h.widgets[1].y == 25
    assert h.h == 330

    #Move parent alignment
    h.spacing  = 30
    assert h.widgets[0].x == 0
    assert h.widgets[1].x == 230
    assert h.w == 430
Ejemplo n.º 3
0
def test_recursive_widget_search():
    d = pedl.Designer()
    l = pedl.StackedLayout()
    w1 = pedl.Widget()
    w2 = pedl.widgets.Rectangle(name='RECT')
    w3 = pedl.Widget()
    l.addWidget(w1)
    l.addWidget(w2)
    d.window.setLayout(l)
    d.addWidget(w3)
    assert d.widgets == [l, w3]
    assert d.findChildren() == [w1, w2, w3]
    assert d.findChildren(name='RECT') == [w2]
    assert d.findChildren(_type=pedl.widgets.Rectangle) == [w2]
Ejemplo n.º 4
0
def test_stack_layout_buttonize():
    w = pedl.Widget(w=50, h=75)
    l = pedl.StackedLayout()
    l.addWidget(w)
    pedl.widgets.MessageButton.buttonize(l)
    assert len(l.widgets) == 2
    assert isinstance(l.widgets[0], pedl.widgets.MessageButton)
Ejemplo n.º 5
0
def test_set_layout():
    d = pedl.Designer()
    l = pedl.StackedLayout()
    l.addWidget(pedl.Widget(w=100, h=100))
    d.window.setLayout(l, resize=True)
    assert d.widgets == [l]
    assert d.window.w == 110
    assert d.window.h == 110
Ejemplo n.º 6
0
def test_addWidget():
    d = pedl.Designer()
    w = pedl.Widget()
    d.addWidget(w)
    assert d.widgets == [w]

    with pytest.raises(TypeError):
        d.addWidget(4)
Ejemplo n.º 7
0
def test_menu_buttonize():
    w = pedl.Widget(w=50, h=75)
    l = pedl.widgets.MenuButton.buttonize(w, controlPv='PV:FAKE')
    assert isinstance(l, pedl.StackedLayout)
    assert l.widgets[0].controlPv == 'PV:FAKE'
    assert l.widgets[0].w == 50
    assert l.widgets[0].h == 75
    assert l.widgets[1].w == 50
    assert l.widgets[1].h == 75
Ejemplo n.º 8
0
def test_template():
    d = pedl.Designer()
    w = pedl.Widget()
    assert 'vis' not in d.render(w)
    w.visibility.pv = 'TST:PV'
    w.visibility.min, w.visibility.max = 1, 2
    assert 'visPv TST:PV' in d.render(w)
    assert 'visMax 2' in d.render(w)
    assert 'visMin 1' in d.render(w)
    w.visibility.inverted = True
    assert 'visInvert' in d.render(w)
Ejemplo n.º 9
0
def test_add_objects():
    p   = pedl.Widget()

    l   = pedl.layout.Layout()
    c_l = pedl.layout.Layout()
    c_l.widgets = [p]

    #Test Widget
    l.addWidget(p)
    assert l.widgets == [p]
    with pytest.raises(TypeError):
        l.addWidget(4)

    #Test Layout
    l.addLayout(c_l)
    assert l.widgets == [p,c_l]
    with pytest.raises(TypeError):
        l.addLayout(4)

    with pytest.raises(ValueError):
        l.addLayout(pedl.layout.Layout())
Ejemplo n.º 10
0
def widget():
    return pedl.Widget()
Ejemplo n.º 11
0
def test_horizontal_layout():
    l = pedl.HBoxLayout()
    
    assert l.w == 0
    assert l.h == 0

    l.addWidget(pedl.Widget(w=50,  h=100))
    l.addWidget(pedl.Widget(w=100, h=50))
    l.addWidget(pedl.Widget(w=100, h=100))

    #Default locations
    assert l.widgets[0].x == 0
    assert l.widgets[1].x == 55
    assert l.widgets[2].x == 160

    assert l.widgets[0].y == 0
    assert l.widgets[1].y == 0
    assert l.widgets[2].y == 0

    assert l.w == 260
    assert l.h == 100

    #Adjust Spacing
    l.spacing = 10
    assert l.widgets[0].x == 0
    assert l.widgets[1].x == 60
    assert l.widgets[2].x == 170
    assert l.w            == 270

    #Adjust Alignments
    l.alignment = pedl.choices.AlignmentChoice.Center
    assert l.widgets[0].y == 0
    assert l.widgets[1].y == 25
    assert l.widgets[2].y == 0
    assert l.h            == 100
    
    l.alignment = pedl.choices.AlignmentChoice.Left
    assert l.widgets[0].y == 0
    assert l.widgets[1].y == 25
    assert l.widgets[2].y == 0
    assert l.h            == 100
    
    l.alignment = pedl.choices.AlignmentChoice.Bottom
    assert l.widgets[0].y == 0
    assert l.widgets[1].y == 50
    assert l.widgets[2].y == 0
    assert l.h            == 100

    #Adjust Position
    l.x = 100
    l.y = 150

    assert l.widgets[0].x == 100
    assert l.widgets[1].x == 160
    assert l.widgets[2].x == 270
    assert l.w            == 270

    assert l.widgets[0].y == 150
    assert l.widgets[1].y == 200
    assert l.widgets[2].y == 150
    assert l.h            == 100

    assert l.x == 100
    assert l.y == 150
Ejemplo n.º 12
0
def test_stack_layout():
    l = pedl.StackedLayout()
    l.addWidget(pedl.Widget(w=50,  h=100))
    l.addWidget(pedl.Widget(w=100, h=50))
    l.addWidget(pedl.Widget(w=100, h=100))

    #Default locations
    assert l.widgets[0].x == 0
    assert l.widgets[1].x == -25
    assert l.widgets[2].x == -25

    assert l.widgets[0].y == 0
    assert l.widgets[1].y == 25
    assert l.widgets[2].y == 0

    assert l.w == 100
    assert l.h == 100

    #Adjust Spacing
    assert l.spacing == None
    
    with pytest.raises(ValueError):
        l.spacing = 4

    #Adjust Alignments
    l.alignment = pedl.choices.AlignmentChoice.Left
    assert l.widgets[0].x == 0
    assert l.widgets[1].x == 0
    assert l.widgets[2].x == 0
    assert l.widgets[0].y == 0
    assert l.widgets[1].y == 25
    assert l.widgets[2].y == 0
    assert l.w            == 100
    assert l.h            == 100

    l.alignment = pedl.choices.AlignmentChoice.Top
    assert l.widgets[0].x == 0
    assert l.widgets[1].x == -25
    assert l.widgets[2].x == -25
    assert l.widgets[0].y == 0
    assert l.widgets[1].y == 0
    assert l.widgets[2].y == 0
    assert l.w            == 100
    assert l.h            == 100    
    
    l.alignment = pedl.choices.AlignmentChoice.Right
    assert l.widgets[0].x == 0
    assert l.widgets[1].x == -50
    assert l.widgets[2].x == -50
    assert l.widgets[0].y == 0
    assert l.widgets[1].y == 25
    assert l.widgets[2].y == 0
    assert l.w            == 100
    assert l.h            == 100    
    
    l.alignment = pedl.choices.AlignmentChoice.Bottom
    assert l.widgets[0].x == 0
    assert l.widgets[1].x == -25
    assert l.widgets[2].x == -25
    assert l.widgets[0].y == 0
    assert l.widgets[1].y == 50
    assert l.widgets[2].y == 0
    assert l.w            == 100
    assert l.h            == 100    
    
    l.alignment = (pedl.choices.AlignmentChoice.Top,
                   pedl.choices.AlignmentChoice.Right)
    assert l.widgets[0].x == 0
    assert l.widgets[1].x == -50
    assert l.widgets[2].x == -50
    assert l.widgets[0].y == 0
    assert l.widgets[1].y == 0
    assert l.widgets[2].y == 0
    assert l.w            == 100
    assert l.h            == 100    

    #Adjust Position
    l.x = 100
    l.y = 150

    assert l.widgets[0].x == 150
    assert l.widgets[1].x == 100
    assert l.widgets[2].x == 100
    assert l.w            == 100

    assert l.widgets[0].y == 150
    assert l.widgets[1].y == 150
    assert l.widgets[2].y == 150
    assert l.h            == 100
    
    assert l.x == 100
    assert l.y == 150
Ejemplo n.º 13
0
def test_widget_render():
    d = pedl.Designer()
    w = pedl.Widget(name='Rectangle')
    assert d.render(w) == conftest.widget_edl