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)
Example #3
0
    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)
Example #5
0
    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)
Example #7
0
    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)