def entry_points(self): lines = list(self.lines_from_arcname('EGG-INFO/entry_points.txt', ignore_empty=False)) if lines == []: return path = join(self.meta_dir, '__entry_points__.txt') fo = open(path, 'w') fo.write('\n'.join(lines) + '\n') fo.close() conf = ConfigParser.ConfigParser() conf.read(path) if ('console_scripts' in conf.sections() or 'gui_scripts' in conf.sections()): if self.verbose: print 'creating scripts' scripts.verbose = True scripts.create(self, conf)
def test_simple(self): if sys.platform == "win32": q = "\"" else: q = "" r_cli_entry_point = """\ #!{q}{executable}{q} # This script was created by egginst when installing: # # dummy.egg # if __name__ == '__main__': import sys from dummy import main_cli sys.exit(main_cli()) """.format(executable=sys.executable, q=q) entry_points = """\ [console_scripts] dummy = dummy:main_cli [gui_scripts] dummy-gui = dummy:main_gui """ s = StringIO(entry_points) config = configparser.ConfigParser() config.readfp(s) with mkdtemp() as d: egginst = EggInst("dummy.egg", d) create(egginst, config) if sys.platform == "win32": entry_point = os.path.join(egginst.bin_dir, "dummy-script.py") else: entry_point = os.path.join(egginst.bin_dir, "dummy") self.assertTrue(os.path.exists(entry_point)) with open(entry_point, "rt") as fp: cli_entry_point = fp.read() self.assertMultiLineEqual(cli_entry_point, r_cli_entry_point)
def test_simple_windows(self): python_executable = "C:\\Python27\\python.exe" pythonw_executable = "C:\\Python27\\pythonw.exe" r_cli_entry_point = """\ #!"{executable}" # This script was created by egginst when installing: # # dummy.egg # if __name__ == '__main__': import sys from dummy import main_cli sys.exit(main_cli()) """.format( executable=python_executable ) r_gui_entry_point = """\ #!"{executable}" # This script was created by egginst when installing: # # dummy.egg # if __name__ == '__main__': import sys from dummy import main_gui sys.exit(main_gui()) """.format( executable=pythonw_executable ) entry_points = """\ [console_scripts] dummy = dummy:main_cli [gui_scripts] dummy-gui = dummy:main_gui """ s = StringIO.StringIO(entry_points) config = ConfigParser.ConfigParser() config.readfp(s) with mock.patch("sys.executable", python_executable): with mkdtemp() as d: egginst = EggInst("dummy.egg", d) create(egginst, config) cli_entry_point_path = op.join(egginst.bin_dir, "dummy-script.py") gui_entry_point_path = op.join(egginst.bin_dir, "dummy-gui-script.pyw") entry_points = [ op.join(egginst.bin_dir, "dummy.exe"), op.join(egginst.bin_dir, "dummy-gui.exe"), cli_entry_point_path, gui_entry_point_path, ] for entry_point in entry_points: self.assertTrue(op.exists(entry_point)) with open(cli_entry_point_path, "rt") as fp: cli_entry_point = fp.read() self.assertMultiLineEqual(cli_entry_point, r_cli_entry_point) with open(gui_entry_point_path, "rt") as fp: gui_entry_point = fp.read() self.assertMultiLineEqual(gui_entry_point, r_gui_entry_point) self.assertEqual(md5_file(op.join(egginst.bin_dir, "dummy.exe")), hashlib.md5(exe_data.cli).hexdigest()) self.assertEqual( md5_file(op.join(egginst.bin_dir, "dummy-gui.exe")), hashlib.md5(exe_data.gui).hexdigest() )
def test_simple_windows(self): python_executable = "C:\\Python27\\python.exe" pythonw_executable = "C:\\Python27\\pythonw.exe" r_cli_entry_point = """\ #!"{executable}" # This script was created by egginst when installing: # # dummy.egg # if __name__ == '__main__': import sys from dummy import main_cli sys.exit(main_cli()) """.format(executable=python_executable) r_gui_entry_point = """\ #!"{executable}" # This script was created by egginst when installing: # # dummy.egg # if __name__ == '__main__': import sys from dummy import main_gui sys.exit(main_gui()) """.format(executable=pythonw_executable) entry_points = """\ [console_scripts] dummy = dummy:main_cli [gui_scripts] dummy-gui = dummy:main_gui """ s = StringIO(entry_points) config = configparser.ConfigParser() config.readfp(s) with mock.patch("sys.executable", python_executable): with mkdtemp() as d: egginst = EggInst("dummy.egg", d) create(egginst, config) cli_entry_point_path = os.path.join(egginst.bin_dir, "dummy-script.py") gui_entry_point_path = os.path.join(egginst.bin_dir, "dummy-gui-script.pyw") entry_points = [ os.path.join(egginst.bin_dir, "dummy.exe"), os.path.join(egginst.bin_dir, "dummy-gui.exe"), cli_entry_point_path, gui_entry_point_path, ] for entry_point in entry_points: self.assertTrue(os.path.exists(entry_point)) with open(cli_entry_point_path, "rt") as fp: cli_entry_point = fp.read() self.assertMultiLineEqual(cli_entry_point, r_cli_entry_point) with open(gui_entry_point_path, "rt") as fp: gui_entry_point = fp.read() self.assertMultiLineEqual(gui_entry_point, r_gui_entry_point) self.assertEqual(compute_md5(os.path.join(egginst.bin_dir, "dummy.exe")), hashlib.md5(exe_data.cli).hexdigest()) self.assertEqual(compute_md5(os.path.join(egginst.bin_dir, "dummy-gui.exe")), hashlib.md5(exe_data.gui).hexdigest())