Exemplo n.º 1
0
def test_execute_condition():
    parsed = execute.parse('execute as @e run help')
    parsed: ParsedExecuteCommand

    assert len(parsed.conditions) == 1
    assert parsed.run.command == 'help'

    assert str(parsed) == 'execute as @e run help'
Exemplo n.º 2
0
def test_execute():
    parsed = execute.parse('execute run help')
    parsed: ParsedExecuteCommand

    assert not parsed.conditions
    assert parsed.run.command == 'help'

    assert str(parsed) == 'execute run help'
Exemplo n.º 3
0
    def test_facing(self):
        condition, = execute.parse('execute facing 0 0 0 run help').conditions
        condition: ParsedExecuteCondition

        assert condition.action.value == 'facing'
        assert isinstance(condition.position, PositionNode)

        assert str(condition) == 'facing 0 0 0'
Exemplo n.º 4
0
    def test_at(self):
        condition, = execute.parse('execute at @s run help').conditions
        condition: ParsedExecuteCondition

        assert condition.action.value == 'at'
        assert isinstance(condition.target, EntityNode)

        assert str(condition) == 'at @s'
Exemplo n.º 5
0
    def test_anchored(self):
        condition, = execute.parse('execute anchored eyes run help').conditions
        condition: ParsedExecuteCondition

        assert condition.action.value == 'anchored'
        assert condition.anchor.value == 'eyes'

        assert str(condition) == 'anchored eyes'
Exemplo n.º 6
0
    def test_align(self):
        condition, = execute.parse('execute align xyz run help').conditions
        condition: ParsedExecuteCondition

        assert condition.action.value == 'align'
        assert condition.axes.value == 'xyz'

        assert str(condition) == 'align xyz'
Exemplo n.º 7
0
    def test_if_entity(self):
        condition, = execute.parse('execute if entity @e run help').conditions
        condition: ParsedExecuteCondition

        assert condition.condition.value == 'entity'
        assert isinstance(condition.target, EntityNode)

        assert str(condition) == 'if entity @e'
Exemplo n.º 8
0
    def test_rotated(self):
        condition, = execute.parse('execute rotated 0 0 run help').conditions
        condition: ParsedExecuteCondition

        assert condition.action.value == 'rotated'
        assert isinstance(condition.rotation, RotationNode)

        assert str(condition) == 'rotated 0 0'
Exemplo n.º 9
0
    def test_store_entity(self):
        condition, = execute.parse(
            'execute store success entity @e a.b.c byte 1 run help').conditions
        condition: ParsedExecuteCondition

        assert condition.mode.value == 'entity'
        assert isinstance(condition.destination, EntityNode)

        assert str(condition) == 'store success entity @e a.b.c byte 1'
Exemplo n.º 10
0
    def test_rotated_as(self):
        condition, = execute.parse('execute rotated as @e run help').conditions
        condition: ParsedExecuteCondition

        assert condition.action.value == 'rotated'
        assert condition.is_entity.value == 'as'
        assert isinstance(condition.target, EntityNode)

        assert str(condition) == 'rotated as @e'
Exemplo n.º 11
0
    def test_store_score(self):
        condition, = execute.parse(
            'execute store success score @s testobjective run help').conditions
        condition: ParsedExecuteCondition

        assert condition.mode.value == 'score'
        assert isinstance(condition.target, EntityNode)
        assert condition.target_objective.value == 'testobjective'

        assert str(condition) == 'store success score @s testobjective'
Exemplo n.º 12
0
    def test_in(self):
        condition, = execute.parse(
            'execute in test:the_test run help').conditions
        condition: ParsedExecuteCondition

        assert condition.action.value == 'in'
        assert condition.dimension.namespace == 'test'
        assert condition.dimension.name == 'the_test'

        assert str(condition) == 'in test:the_test'
Exemplo n.º 13
0
    def test_if_score_matches(self):
        condition, = execute.parse(
            'execute if score @s testobjective matches 69..1337 run help'
        ).conditions
        condition: ParsedExecuteCondition

        assert condition.comparison.value == 'matches'
        assert condition.range.value == '69..1337'

        assert str(condition) == 'if score @s testobjective matches 69..1337'
Exemplo n.º 14
0
    def test_facing_entity(self):
        condition, = execute.parse(
            'execute facing entity @s eyes run help').conditions
        condition: ParsedExecuteCondition

        assert condition.action.value == 'facing'
        assert condition.is_entity.value == 'entity'
        assert isinstance(condition.target, EntityNode)
        assert condition.anchor.value == 'eyes'

        assert str(condition) == 'facing entity @s eyes'
Exemplo n.º 15
0
    def test_if_data(self):
        condition, = execute.parse(
            'execute if data block 0 0 0 a.b.c run help').conditions
        condition: ParsedExecuteCondition

        assert condition.condition.value == 'data'
        assert condition.source_type.value == 'block'
        assert isinstance(condition.source, PositionNode)
        assert condition.path.value == 'a.b.c'

        assert str(condition) == 'if data block 0 0 0 a.b.c'
Exemplo n.º 16
0
    def test_store_bossbar(self):
        condition, = execute.parse(
            'execute store success bossbar test:bossbar value run help'
        ).conditions
        condition: ParsedExecuteCondition

        assert condition.mode.value == 'bossbar'
        assert condition.destination.namespace == 'test'
        assert condition.destination.name == 'bossbar'
        assert condition.path.value == 'value'

        assert str(condition) == 'store success bossbar test:bossbar value'
Exemplo n.º 17
0
    def test_if_block(self):
        condition, = execute.parse(
            'execute if block 0 0 0 test:block run help').conditions
        condition: ParsedExecuteCondition

        assert condition.action.value == 'if'
        assert condition.condition.value == 'block'
        assert isinstance(condition.position, PositionNode)
        assert condition.block.namespace == 'test'
        assert condition.block.name == 'block'

        assert str(condition) == 'if block 0 0 0 test:block'
Exemplo n.º 18
0
    def test_if_blocks(self):
        condition, = execute.parse(
            'execute if blocks 0 0 0 1 1 1 2 2 2 all run help').conditions
        condition: ParsedExecuteCondition

        assert condition.condition.value == 'blocks'
        assert isinstance(condition.start, PositionNode)
        assert isinstance(condition.end, PositionNode)
        assert isinstance(condition.destination, PositionNode)
        assert condition.mode.value == 'all'

        assert str(condition) == 'if blocks 0 0 0 1 1 1 2 2 2 all'
Exemplo n.º 19
0
    def test_if_score(self):
        condition, = execute.parse(
            'execute if score @s testobjective1 = @s testobjective2 run help'
        ).conditions
        condition: ParsedExecuteCondition

        assert condition.condition.value == 'score'
        assert isinstance(condition.target, EntityNode)
        assert condition.target_objective.value == 'testobjective1'
        assert condition.comparison.value == '='
        assert isinstance(condition.source, EntityNode)
        assert condition.source_objective.value == 'testobjective2'

        assert str(condition) == 'if score @s testobjective1 = ' \
                                 '@s testobjective2'
Exemplo n.º 20
0
    def test_store_block(self):
        condition, = execute.parse(
            'execute store success block 0 0 0 a.b.c byte 1 run help'
        ).conditions
        condition: ParsedExecuteCondition

        assert condition.action.value == 'store'
        assert condition.condition.value == 'success'
        assert condition.mode.value == 'block'
        assert isinstance(condition.destination, PositionNode)
        assert condition.path.value == 'a.b.c'
        assert condition.type.value == 'byte'
        assert condition.scale.value == 1

        assert str(condition) == 'store success block 0 0 0 a.b.c byte 1'