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], {})
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], {})
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)
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"], {})
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})
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"})