コード例 #1
0
    def test_positional_expression(self, parser, ctx, num):
        """Test a positional expression is correctly extracted"""
        args = blackbirdParser.ArgumentsContext(parser, ctx)
        arg1 = blackbirdParser.ValContext(parser, ctx)

        arg1.expression = lambda: num(5)
        args.getChildren = lambda: [arg1]
        assert _get_arguments(args) == ([5], {})
コード例 #2
0
    def test_positional_var(self, parser, ctx, var, monkeypatch):
        """Test a positional variable is correctly extracted"""
        args = blackbirdParser.ArgumentsContext(parser, ctx)
        arg1 = blackbirdParser.ValContext(parser, ctx)

        arg1.NAME = lambda: var('U')
        args.getChildren = lambda: [arg1]

        with monkeypatch.context() as m:
            m.setattr(blackbird.auxiliary, "_VAR", {"U": U})
            assert _get_arguments(args) == ([U], {})
コード例 #3
0
    def test_positional_invalid_var(self, parser, ctx, var):
        """Test exception raised if variable not found"""
        args = blackbirdParser.ArgumentsContext(parser, ctx)
        arg1 = blackbirdParser.ValContext(parser, ctx)

        arg1.NAME = lambda: var('U')
        arg1.start = start()
        args.getChildren = lambda: [arg1]

        with pytest.raises(BlackbirdSyntaxError, match="name 'U' is not defined"):
            _get_arguments(args)
コード例 #4
0
    def test_positional_string(self, parser, ctx):
        """Test a positional string is correctly extracted"""
        args = blackbirdParser.ArgumentsContext(parser, ctx)
        arg1 = blackbirdParser.ValContext(parser, ctx)

        nonnumeric = blackbirdParser.NonnumericContext(parser, ctx)
        nonnumeric.STR = lambda: True
        nonnumeric.getText = lambda: "Test value"

        arg1.nonnumeric = lambda: nonnumeric
        args.getChildren = lambda: [arg1]
        assert _get_arguments(args) == (["Test value"], {})
コード例 #5
0
    def test_keyword_expression(self, parser, ctx, num):
        """Test a keyword expression is correctly extracted"""
        args = blackbirdParser.ArgumentsContext(parser, ctx)
        kwarg1 = blackbirdParser.KwargContext(parser, ctx)
        arg1 = blackbirdParser.ValContext(parser, ctx)
        name = blackbirdParser.NameContext(parser, ctx)

        name.getText = lambda: "test_kwarg"
        kwarg1.val = lambda: arg1
        kwarg1.NAME = lambda: name
        arg1.expression = lambda: num(5)
        args.getChildren = lambda: [kwarg1]
        assert _get_arguments(args) == ([], {"test_kwarg": 5})
コード例 #6
0
    def test_keyword_nonnumeric(self, parser, ctx):
        """Test a keyword nonnumeric is correctly extracted"""
        args = blackbirdParser.ArgumentsContext(parser, ctx)
        kwarg1 = blackbirdParser.KwargContext(parser, ctx)
        arg1 = blackbirdParser.ValContext(parser, ctx)
        name = blackbirdParser.NameContext(parser, ctx)
        nonnumeric = blackbirdParser.NonnumericContext(parser, ctx)

        nonnumeric.STR = lambda: True
        nonnumeric.getText = lambda: "Test value"

        name.getText = lambda: "test_kwarg"
        kwarg1.val = lambda: arg1
        kwarg1.NAME = lambda: name
        arg1.nonnumeric = lambda: nonnumeric
        args.getChildren = lambda: [kwarg1]
        assert _get_arguments(args) == ([], {"test_kwarg": "Test value"})