Пример #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'
Пример #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'
Пример #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'
Пример #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'
Пример #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'
Пример #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'
Пример #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'
Пример #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'
Пример #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'
Пример #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'
Пример #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'
Пример #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'
Пример #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'
Пример #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'
Пример #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'
Пример #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'
Пример #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'
Пример #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'
Пример #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'
Пример #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'