def test_generate_command_asgi_service_option_nginx_conf_not_linux( self, mock_os_path_isfile, mock_file, mock_env, mock_os_path_exists, mock_linux_distribution, mock_render_template, mock_write_info): mock_args = mock.MagicMock(conda_prefix=False) mock_args.type = GEN_ASGI_SERVICE_OPTION mock_args.directory = None mock_os_path_isfile.return_value = False mock_env.side_effect = ['/foo/conda', 'conda_env'] mock_os_path_exists.return_value = True mock_linux_distribution.side_effect = Exception mock_file.return_value = mock.mock_open( read_data='user foo_user').return_value generate_command(args=mock_args) mock_os_path_isfile.assert_called_once() mock_file.assert_called() mock_env.assert_called_with('CONDA_PREFIX') mock_os_path_exists.assert_any_call('/etc/nginx/nginx.conf') context = mock_render_template.call_args_list[0][0][1] self.assertEqual('', context['user_option_prefix']) self.assertEqual('foo_user', context['nginx_user']) mock_write_info.assert_called()
def test_generate_command_metayaml(self, mock_print, mock_os_path_isfile, mock_file, mock_run_command, mock_load, mock_Template, _, mock_os_path_join): mock_args = mock.MagicMock() mock_args.type = GEN_META_YAML_OPTION mock_args.directory = None mock_args.pin_level = 'minor' mock_os_path_isfile.return_value = False mock_os_path_join.return_value = f"{TETHYS_SRC}/conda.recipe" stdout = '# packages in environment at /home/nswain/miniconda/envs/tethys:\n' \ '#\n' \ '# Name Version Build Channel\n' \ 'foo 1.2.3 py37_0 conda-forge\n' \ 'bar 4.5.6 py37h516909a_0 conda-forge\n' \ 'goo 7.8 py37h516909a_0 conda-forge\n' mock_run_command.return_value = (stdout, '', 0) mock_load.return_value = {'dependencies': ['foo', 'bar=4.5', 'goo']} mock_Template().render.return_value = 'out' generate_command(args=mock_args) mock_run_command.assert_any_call('list', 'foo') mock_run_command.assert_any_call('list', 'goo') rts_call_args = mock_print.call_args_list self.assertListEqual([], rts_call_args) render_context = mock_Template().render.call_args_list[0][0][0] expected_context = { 'run_requirements': ['foo=1.2.*', 'bar=4.5', 'goo=7.8'] } self.assertDictEqual(expected_context, render_context) mock_file.assert_called() mock_os_path_join.assert_called()
def test_generate_command_portal_yaml(self, mock_os_path_isfile, mock_file): mock_args = mock.MagicMock() mock_args.type = GEN_PORTAL_OPTION mock_args.directory = None mock_os_path_isfile.return_value = False generate_command(args=mock_args) mock_os_path_isfile.assert_called_once() mock_file.assert_called()
def test_generate_command_settings_option(self, mock_os_path_isfile, mock_file): mock_args = mock.MagicMock() mock_args.type = GEN_SETTINGS_OPTION mock_args.directory = None mock_os_path_isfile.return_value = False generate_command(args=mock_args) mock_os_path_isfile.assert_called_once() mock_file.assert_called()
def test_generate_command_nginx_service(self, mock_os_path_isfile, mock_file): mock_args = mock.MagicMock() mock_args.type = GEN_NGINX_SERVICE_OPTION mock_args.directory = None mock_os_path_isfile.return_value = False generate_command(args=mock_args) mock_os_path_isfile.assert_called_once() mock_file.assert_called()
def test_generate_command_nginx_option(self, mock_os_path_isfile, mock_file, mock_settings): mock_args = mock.MagicMock() mock_args.type = GEN_NGINX_OPTION mock_args.directory = None mock_os_path_isfile.return_value = False mock_settings.side_effect = ['/foo/workspace', '/foo/static'] generate_command(args=mock_args) mock_os_path_isfile.assert_called_once() mock_file.assert_called() mock_settings.assert_any_call('TETHYS_WORKSPACES_ROOT') mock_settings.assert_called_with('STATIC_ROOT')
def test_generate_command_install_option(self, mock_print, mock_os_path_isfile, mock_file): mock_args = mock.MagicMock() mock_args.type = GEN_INSTALL_OPTION mock_args.directory = None mock_os_path_isfile.return_value = False generate_command(args=mock_args) rts_call_args = mock_print.call_args_list self.assertIn('Please review the generated install.yml', rts_call_args[0][0][0]) mock_os_path_isfile.assert_called_once() mock_file.assert_called()
def test_generate_command_asgi_service_option(self, mock_os_path_isfile, mock_file, mock_env): mock_args = mock.MagicMock() mock_args.type = GEN_ASGI_SERVICE_OPTION mock_args.directory = None mock_os_path_isfile.return_value = False mock_env.side_effect = ['/foo/conda', 'conda_env'] generate_command(args=mock_args) mock_os_path_isfile.assert_called() mock_file.assert_called() mock_env.assert_any_call('CONDA_HOME') mock_env.assert_called_with('CONDA_ENV_NAME')
def test_generate_command_asgi_settings_pre_existing_overwrite(self, mock_os_path_isfile, mock_file, mock_env): mock_args = mock.MagicMock() mock_args.type = GEN_ASGI_SERVICE_OPTION mock_args.directory = None mock_args.overwrite = True mock_os_path_isfile.return_value = True mock_env.side_effect = ['/foo/conda', 'conda_env'] generate_command(args=mock_args) mock_os_path_isfile.assert_called_once() mock_file.assert_called() mock_env.assert_any_call('CONDA_HOME') mock_env.assert_called_with('CONDA_ENV_NAME')
def test_generate_command_asgi_service_option(self, mock_os_path_isfile, mock_file, mock_env, mock_write_info): mock_args = mock.MagicMock(conda_prefix=False) mock_args.type = GEN_ASGI_SERVICE_OPTION mock_args.directory = None mock_os_path_isfile.return_value = False mock_env.side_effect = ['/foo/conda', 'conda_env'] generate_command(args=mock_args) mock_os_path_isfile.assert_called() mock_file.assert_called() mock_env.assert_called_with('CONDA_PREFIX') mock_write_info.assert_called()
def test_generate_command_asgi_settings_option_directory(self, mock_os_path_isfile, mock_file, mock_env, mock_os_path_isdir): mock_args = mock.MagicMock() mock_args.type = GEN_ASGI_SERVICE_OPTION mock_args.directory = '/foo/temp' mock_os_path_isfile.return_value = False mock_env.side_effect = ['/foo/conda', 'conda_env'] mock_os_path_isdir.return_value = True generate_command(args=mock_args) mock_os_path_isfile.assert_called_once() mock_file.assert_called() mock_os_path_isdir.assert_called_with(mock_args.directory) mock_env.assert_any_call('CONDA_HOME') mock_env.assert_called_with('CONDA_ENV_NAME')
def test_generate_command_asgi_service_option_distro( self, mock_os_path_isfile, mock_file, mock_env, mock_distribution, mock_write_info): mock_args = mock.MagicMock() mock_args.type = GEN_ASGI_SERVICE_OPTION mock_args.directory = None mock_os_path_isfile.return_value = False mock_env.side_effect = ['/foo/conda', 'conda_env'] mock_distribution.return_value = ('redhat', 'linux', '') generate_command(args=mock_args) mock_os_path_isfile.assert_called_once() mock_file.assert_called() mock_env.assert_called_with('CONDA_PREFIX') mock_write_info.assert_called()
def test_generate_command_asgi_settings_option_directory( self, mock_os_path_isfile, mock_file, mock_env, mock_os_path_isdir, mock_write_info): mock_args = mock.MagicMock(conda_prefix=False) mock_args.type = GEN_ASGI_SERVICE_OPTION mock_args.directory = '/foo/temp' mock_os_path_isfile.return_value = False mock_env.side_effect = ['/foo/conda', 'conda_env'] mock_os_path_isdir.side_effect = [ True, True ] # TETHYS_HOME exists, computed directory exists generate_command(args=mock_args) mock_os_path_isfile.assert_called_once() mock_file.assert_called() mock_os_path_isdir.assert_called_with(mock_args.directory) mock_env.assert_called_with('CONDA_PREFIX') mock_write_info.assert_called()
def test_generate_command_portal_yaml__tethys_home_not_exists( self, mock_makedirs, mock_os_path_isfile, mock_file, mock_write_info, mock_isdir): mock_args = mock.MagicMock() mock_args.type = GEN_PORTAL_OPTION mock_args.directory = None mock_os_path_isfile.return_value = False mock_isdir.side_effect = [ False, True ] # TETHYS_HOME dir exists, computed dir exists generate_command(args=mock_args) mock_os_path_isfile.assert_called_once() mock_file.assert_called() # Verify it makes the Tethys Home directory mock_makedirs.assert_called() rts_call_args = mock_write_info.call_args_list self.assertIn('A Tethys Portal configuration file', rts_call_args[0][0][0])