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().')
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)
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)