def test_should_render_setup_file(self): actual_setup_script = render_setup_script(self.project) self.assert_line_by_line_equal("""#!/usr/bin/env python from distutils.core import setup if __name__ == '__main__': setup( name = 'Spam and Eggs', version = '1.2.3', description = '''This is a simple integration-test for distutils plugin.''', long_description = '''As you might have guessed we have nothing to say here.''', author = "Udo Juettner, Michael Gruber", author_email = "[email protected], [email protected]", license = 'WTFPL', url = 'http://github.com/pybuilder/pybuilder', scripts = ['spam', 'eggs'], packages = ['spam', 'eggs'], py_modules = ['spam', 'eggs'], classifiers = ['Development Status :: 5 - Beta', 'Environment :: Console'], entry_points={ 'console_scripts': [] }, data_files = [('dir', ['file1', 'file2'])], # data files package_data = {'spam': ['eggs']}, # package data install_requires = [ "sometool" ], dependency_links = [ "https://github.com/downloads/halimath/pyassert/pyassert-0.2.2.tar.gz" ], zip_safe=True ) """, actual_setup_script)
def test_should_not_remove_hardlink_capabilities_when_workaround_is_disabled(self): self.project.set_property( "distutils_issue8876_workaround_enabled", False) actual_setup_script = render_setup_script(self.project) self.assertFalse("import os\ndel os.link\n" in actual_setup_script)
def test_should_remove_hardlink_capabilities_when_workaround_is_enabled( self): self.project.set_property("distutils_issue8876_workaround_enabled", True) actual_setup_script = render_setup_script(self.project) self.assertTrue("import os\ndel os.link\n" in actual_setup_script)
def test_should_render_runtime_dependencies_when_requirements_file_used(self, mock_open): mock_open.return_value = MagicMock(spec=TYPE_FILE) handle = mock_open.return_value.__enter__.return_value handle.readlines.return_value = ["", "foo", "bar"] self.project.depends_on_requirements("requirements.txt") actual_setup_script = render_setup_script(self.project) self.assertTrue('install_requires = [ "sometool", "foo", "bar" ],' in actual_setup_script)
def test_should_render_console_scripts_when_property_is_set(self): self.project.set_property("distutils_console_scripts", ["release = zest.releaser.release:main", "prerelease = zest.releaser.prerelease:main"]) actual_setup_script = render_setup_script(self.project) self.assertTrue(""" entry_points={ 'console_scripts': ['release = zest.releaser.release:main','prerelease = zest.releaser.prerelease:main'] },""" in actual_setup_script)
def test_should_render_setup_file_install_script_wrappers(self): self.project.pre_install_script("pre_install_test()") self.project.post_install_script("post_install_test()") actual_setup_script = render_setup_script(self.project) self.assert_line_by_line_equal( """#!/usr/bin/env python from distutils.core import setup, Extension from distutils.core.command.install import install as _install class install(_install): def pre_install_script(self): pre_install_test() def post_install_script(self): post_install_test() def run(self): self.pre_install_script() _install.run(self) self.post_install_script() if __name__ == '__main__': setup( name = 'Spam and Eggs', version = '1.2.3', description = 'This is a simple integration-test for distutils plugin.', long_description = 'As you might have guessed we have nothing to say here.', author = 'Udo Juettner, Michael Gruber', author_email = '[email protected], [email protected]', license = 'WTFPL', url = 'http://github.com/pybuilder/pybuilder', scripts = [ 'spam', 'eggs' ], packages = [ 'spam', 'eggs' ], namespace_packages = [ 'foo.bar', 'quick.brown.fox' ], py_modules = [ 'spam', 'eggs' ], ext_modules = [] + [], classifiers = [ 'Development Status :: 5 - Beta', 'Environment :: Console' ], entry_points = {}, data_files = [ ('dir', ['file1', 'file2']) ], package_data = { 'spam': ['eggs'] }, include_package_data = False, install_requires = ['sometool'], dependency_links = ['https://github.com/downloads/halimath/pyassert/pyassert-0.2.2.tar.gz'], zip_safe = True, cmdclass = {'install': install}, keywords = '', python_requires = '', obsoletes = [], ) """, actual_setup_script)
def test_should_render_setup_file_install_script_wrappers(self): self.project.pre_install_script("pre_install_test()") self.project.post_install_script("post_install_test()") actual_setup_script = render_setup_script(self.project) self.assert_line_by_line_equal("""#!/usr/bin/env python from distutils.core import setup from distutils.core.command.install import install as _install class install(_install): def pre_install_script(self): pre_install_test() def post_install_script(self): post_install_test() def run(self): self.pre_install_script() _install.run(self) self.post_install_script() if __name__ == '__main__': setup( name = 'Spam and Eggs', version = '1.2.3', description = '''This is a simple integration-test for distutils plugin.''', long_description = '''As you might have guessed we have nothing to say here.''', author = "Udo Juettner, Michael Gruber", author_email = "[email protected], [email protected]", license = 'WTFPL', url = 'http://github.com/pybuilder/pybuilder', scripts = [ 'spam', 'eggs' ], packages = [ 'spam', 'eggs' ], namespace_packages = [ 'foo.bar', 'quick.brown.fox' ], py_modules = [ 'spam', 'eggs' ], classifiers = [ 'Development Status :: 5 - Beta', 'Environment :: Console' ], entry_points = {}, data_files = [ ('dir', ['file1', 'file2']) ], package_data = { 'spam': ['eggs'] }, install_requires = ['sometool'], dependency_links = ['https://github.com/downloads/halimath/pyassert/pyassert-0.2.2.tar.gz'], zip_safe=True, cmdclass={'install': install}, keywords='', ) """, actual_setup_script)