Example #1
0
    def test_restore_original_package_version_file_restores_correctly(self):
        def fake_os_rename(source_file_path, target_file_path):
            # Store the args the first time rename is called so we can use these values in later asserts.
            nonlocal original_pkg_ver_path, backup_pkg_ver_path
            if None in (original_pkg_ver_path, backup_pkg_ver_path):
                original_pkg_ver_path = source_file_path
                backup_pkg_ver_path = target_file_path

        original_pkg_ver_path = None
        backup_pkg_ver_path = None
        self.patch('app.util.autoversioning.fs')
        mock_os = self.patch('app.util.autoversioning.os')
        mock_os.rename.side_effect = fake_os_rename

        autoversioning.write_package_version_file(
            package_version_string='1.2.3')
        autoversioning.restore_original_package_version_file()

        backup_os_rename_call = call.rename(original_pkg_ver_path,
                                            backup_pkg_ver_path)
        restore_os_rename_call = call.rename(backup_pkg_ver_path,
                                             original_pkg_ver_path)
        self.assertLess(
            mock_os.method_calls.index(backup_os_rename_call),
            mock_os.method_calls.index(restore_os_rename_call),
            'restore_original_package_version_file() should restore whatever file was backed up in the '
            'previous call to write_package_version_file().')
    def test_write_package_version_file_writes_a_valid_python_file(self):
        def fake_write_file(file_contents, _):
            vars_set_in_file = {}
            exec(file_contents, {}, vars_set_in_file)  # this will raise if file_contents is not valid python code
            self.assertEqual(vars_set_in_file.get('version'), '1.2.3', 'The file written should be Python code that '
                                                                       'sets a "version" variable.')
        self.patch('app.util.autoversioning.os')
        self.patch('app.util.autoversioning.fs').write_file.side_effect = fake_write_file

        autoversioning.write_package_version_file(package_version_string='1.2.3')
    def test_write_package_version_file_writes_a_valid_python_file(self):
        def fake_write_file(file_contents, _):
            vars_set_in_file = {}
            exec(file_contents, {}, vars_set_in_file)  # this will raise if file_contents is not valid python code
            self.assertEqual(vars_set_in_file.get('version'), '1.2.3', 'The file written should be Python code that '
                                                                       'sets a "version" variable.')
        self.patch('app.util.autoversioning.os')
        self.patch('app.util.autoversioning.fs').write_file.side_effect = fake_write_file

        autoversioning.write_package_version_file(package_version_string='1.2.3')
    def test_write_package_version_file_backs_up_original_file_before_writing(self):
        parent_mock = MagicMock()  # create a parent mock so we can assert on the order of child mock calls.
        parent_mock.attach_mock(self.patch('app.util.autoversioning.os'), 'os')
        parent_mock.attach_mock(self.patch('app.util.autoversioning.fs'), 'fs')

        autoversioning.write_package_version_file(package_version_string='1.2.3')

        expected_rename_call = call.os.rename(AnythingOfType(str), AnythingOfType(str))
        expected_write_file_call = call.fs.write_file(AnythingOfType(str), AnythingOfType(str))
        self.assertLess(parent_mock.method_calls.index(expected_rename_call),
                        parent_mock.method_calls.index(expected_write_file_call),
                        'write_package_version_file() should rename the original file before writing the new file.')
    def test_write_package_version_file_backs_up_original_file_before_writing(self):
        parent_mock = MagicMock()  # create a parent mock so we can assert on the order of child mock calls.
        parent_mock.attach_mock(self.patch('app.util.autoversioning.os'), 'os')
        parent_mock.attach_mock(self.patch('app.util.autoversioning.fs'), 'fs')

        autoversioning.write_package_version_file(package_version_string='1.2.3')

        expected_rename_call = call.os.rename(AnythingOfType(str), AnythingOfType(str))
        expected_write_file_call = call.fs.write_file(AnythingOfType(str), AnythingOfType(str))
        self.assertLess(parent_mock.method_calls.index(expected_rename_call),
                        parent_mock.method_calls.index(expected_write_file_call),
                        'write_package_version_file() should rename the original file before writing the new file.')
    def test_restore_original_package_version_file_restores_correctly(self):
        def fake_os_rename(source_file_path, target_file_path):
            # Store the args the first time rename is called so we can use these values in later asserts.
            nonlocal original_pkg_ver_path, backup_pkg_ver_path
            if None in (original_pkg_ver_path, backup_pkg_ver_path):
                original_pkg_ver_path = source_file_path
                backup_pkg_ver_path = target_file_path

        original_pkg_ver_path = None
        backup_pkg_ver_path = None
        self.patch('app.util.autoversioning.fs')
        mock_os = self.patch('app.util.autoversioning.os')
        mock_os.rename.side_effect = fake_os_rename

        autoversioning.write_package_version_file(package_version_string='1.2.3')
        autoversioning.restore_original_package_version_file()

        backup_os_rename_call = call.rename(original_pkg_ver_path, backup_pkg_ver_path)
        restore_os_rename_call = call.rename(backup_pkg_ver_path, original_pkg_ver_path)
        self.assertLess(mock_os.method_calls.index(backup_os_rename_call),
                        mock_os.method_calls.index(restore_os_rename_call),
                        'restore_original_package_version_file() should restore whatever file was backed up in the '
                        'previous call to write_package_version_file().')
Example #7
0
base = 'Console'

executable_name = 'clusterrunner.exe' if is_windows() else 'clusterrunner'
executables = [Executable('main.py', base=base, targetName=executable_name)]

if sys.platform.startswith('linux'):
    # Fixes compatibility between rhel and ubuntu
    bin_includes = ['/usr/lib64/libssl.so.10', '/usr/lib64/libcrypto.so.10']
    file_exists = [os.path.isfile(filename) for filename in bin_includes]

    if all(file_exists):
        buildOptions['bin_includes'] = bin_includes

version = autoversioning.get_version()
autoversioning.write_package_version_file(version)

setup(name='ClusterRunner',
      version=version,
      description='',
      options=dict(build_exe=buildOptions),
      executables=executables)

autoversioning.restore_original_package_version_file()

if sys.platform == 'darwin':
    # Fix a cx_freeze issue on mac.
    # (See similar fix at https://bitbucket.org/iep-project/iep/commits/1e845c0f35)
    abs_python_path = None
    clusterrunner_path = join(dirname(__file__), 'dist', executable_name)
Example #8
0
executable_name = 'clusterrunner.exe' if is_windows() else 'clusterrunner'
executables = [
    Executable('main.py', base=base, targetName=executable_name)
]

if sys.platform.startswith('linux'):
    # Fixes compatibility between rhel and ubuntu
    bin_includes = ['/usr/lib64/libssl.so.10', '/usr/lib64/libcrypto.so.10']
    file_exists = [os.path.isfile(filename) for filename in bin_includes]

    if all(file_exists):
        buildOptions['bin_includes'] = bin_includes

version = autoversioning.get_version()
autoversioning.write_package_version_file(version)

setup(name='ClusterRunner',
      version=version,
      description='',
      options=dict(build_exe=buildOptions),
      executables=executables)

autoversioning.restore_original_package_version_file()

if sys.platform == 'darwin':
    # Fix a cx_freeze issue on mac.
    # (See similar fix at https://bitbucket.org/iep-project/iep/commits/1e845c0f35)
    abs_python_path = None
    clusterrunner_path = join(dirname(__file__), 'dist', executable_name)