def test_script_build_simple(): script = Script("foo", "foo.bar", "baz.qux", section="console") name, data = script.build("/path/to/my/python", kind="posix") assert name == "foo" assert data.startswith(b"#!/path/to/my/python\n") assert b"\nfrom foo.bar import baz\n" in data assert b"baz.qux()" in data
def test_script_build_space_in_executable(): script = Script("foo", "foo.bar", "baz.qux", section="console") name, data = script.build("/path to my/python", kind="posix") assert name == "foo" assert data.startswith(b"#!/bin/sh\n") assert b" '/path to my/python'" in data assert b"\nfrom foo.bar import baz\n" in data assert b"baz.qux()" in data
def test_script_build_launcher(section, kind): launcher_data = _read_launcher_data(section, kind) script = Script("foo", "foo.bar", "baz.qux", section=section) name, data = script.build("#!C:\\path to my\\python.exe\n", kind=kind) prefix_len = len(launcher_data) + len(b"#!C:\\path to my\\python.exe\n") stream = io.BytesIO(data[prefix_len:]) with zipfile.ZipFile(stream) as zf: code = zf.read("__main__.py") assert name == "foo.exe" assert data.startswith(launcher_data) assert b"#!C:\\path to my\\python.exe\n" in data assert b"\nfrom foo.bar import baz\n" in code assert b"baz.qux()" in code
def test_script_build_launcher_error(section, kind): script = Script("foo", "foo.bar", "baz.qux", section=section) with pytest.raises(InvalidScript): script.build("#!C:\\path to my\\python.exe\n", kind=kind)