54 lines
1.5 KiB
Python
54 lines
1.5 KiB
Python
from shlax import *
|
|
|
|
inner = Run()
|
|
other = Run('ls')
|
|
middle = Buildah('alpine', inner, other)
|
|
outer = Localhost(middle)
|
|
middle = outer.actions[0]
|
|
other = middle.actions[1]
|
|
inner = middle.actions[0]
|
|
|
|
|
|
def test_action_init_args():
|
|
assert other.args == ('ls',)
|
|
|
|
|
|
def test_action_parent_autoset():
|
|
assert list(outer.actions) == [middle]
|
|
assert middle.parent == outer
|
|
assert inner.parent == middle
|
|
assert other.parent == middle
|
|
|
|
|
|
def test_action_context():
|
|
assert outer.context is inner.context
|
|
assert middle.context is inner.context
|
|
assert middle.context is outer.context
|
|
assert other.context is outer.context
|
|
|
|
|
|
def test_action_sibblings():
|
|
assert inner.sibblings() == [other]
|
|
assert inner.sibblings(lambda s: s.args[0] == 'ls') == [other]
|
|
assert inner.sibblings(lambda s: s.args[0] == 'foo') == []
|
|
assert inner.sibblings(type='run') == [other]
|
|
assert inner.sibblings(args=('ls',)) == [other]
|
|
|
|
|
|
def test_actions_parents():
|
|
assert other.parents() == [middle, outer]
|
|
assert other.parents(lambda p: p.base == 'alpine') == [middle]
|
|
assert inner.parents(type='localhost') == [outer]
|
|
assert inner.parents(type='buildah') == [middle]
|
|
|
|
|
|
def test_action_childrens():
|
|
assert middle.children() == [inner, other]
|
|
assert middle.children(lambda a: a.args[0] == 'ls') == [other]
|
|
assert outer.children() == [middle, inner, other]
|
|
|
|
|
|
def test_action_getattr():
|
|
assert other.exec == middle.exec
|
|
assert other.shargs == middle.shargs
|