def app_settings_remove_command(args): from tethys_apps.utilities import remove_ps_database_setting app_package = args.app setting_name = args.name force = args.force success = remove_ps_database_setting(app_package, setting_name, force) if not success: exit(1) exit(0)
def test_remove_ps_database_setting_force_delete(self, mock_app, mock_ps_db_setting, mock_pretty_output): # Mock up for TethysApp and PersistentStoreDatabaseSetting mock_app.objects.get.return_value = mock.MagicMock() mock_ps_db_setting.objects.get.return_value = mock.MagicMock() mock_ps_db_setting.objects.get().delete.return_value = True mock_app_package = mock.MagicMock() mock_name = mock.MagicMock() # Delete will be called and True returned result = utilities.remove_ps_database_setting(app_package=mock_app_package, name=mock_name, force=True) self.assertEqual(True, result) mock_ps_db_setting.objects.get().delete.assert_called_once() po_call_args = mock_pretty_output().__enter__().write.call_args_list self.assertEqual(1, len(po_call_args)) self.assertIn('Successfully removed PersistentStoreDatabaseSetting with name', po_call_args[0][0][0])
def test_remove_ps_database_setting_app_not_exist(self, mock_app, mock_pretty_output): from django.core.exceptions import ObjectDoesNotExist # Mock up for TethysApp to throw an exception mock_app.objects.get.side_effect = ObjectDoesNotExist mock_app_package = mock.MagicMock() mock_name = mock.MagicMock() # An exception will be thrown and false returned result = utilities.remove_ps_database_setting(app_package=mock_app_package, name=mock_name) self.assertEqual(False, result) po_call_args = mock_pretty_output().__enter__().write.call_args_list self.assertEqual(1, len(po_call_args)) self.assertIn('A Tethys App with the name', po_call_args[0][0][0]) self.assertIn('does not exist. Aborted.', po_call_args[0][0][0])
def test_remove_ps_database_setting_force_delete(self, mock_app, mock_ps_db_setting, mock_pretty_output): # Mock up for TethysApp and PersistentStoreDatabaseSetting mock_app.objects.get.return_value = mock.MagicMock() mock_ps_db_setting.objects.get.return_value = mock.MagicMock() mock_ps_db_setting.objects.get().delete.return_value = True mock_app_package = mock.MagicMock() mock_name = mock.MagicMock() # Delete will be called and True returned result = utilities.remove_ps_database_setting(app_package=mock_app_package, name=mock_name, force=True) self.assertEqual(True, result) mock_ps_db_setting.objects.get().delete.assert_called_once() po_call_args = mock_pretty_output().__enter__().write.call_args_list self.assertEqual(1, len(po_call_args)) self.assertIn('Successfully removed PersistentStoreDatabaseSetting with name', po_call_args[0][0][0])
def test_remove_ps_database_setting_app_not_exist(self, mock_app, mock_pretty_output): from django.core.exceptions import ObjectDoesNotExist # Mock up for TethysApp to throw an exception mock_app.objects.get.side_effect = ObjectDoesNotExist mock_app_package = mock.MagicMock() mock_name = mock.MagicMock() # An exception will be thrown and false returned result = utilities.remove_ps_database_setting(app_package=mock_app_package, name=mock_name) self.assertEqual(False, result) po_call_args = mock_pretty_output().__enter__().write.call_args_list self.assertEqual(1, len(po_call_args)) self.assertIn('A Tethys App with the name', po_call_args[0][0][0]) self.assertIn('does not exist. Aborted.', po_call_args[0][0][0])
def test_remove_ps_database_setting_do_not_proceed(self, mock_app, mock_ps_db_setting, mock_pretty_output, mock_input): # Mock up for TethysApp and PersistentStoreDatabaseSetting mock_app.objects.get.return_value = mock.MagicMock() mock_ps_db_setting.objects.get.return_value = mock.MagicMock() mock_ps_db_setting.objects.get().delete.return_value = True mock_input.side_effect = ['foo', 'N'] mock_app_package = mock.MagicMock() mock_name = mock.MagicMock() # Based on the raw_input, delete not called and None returned result = utilities.remove_ps_database_setting(app_package=mock_app_package, name=mock_name) self.assertEqual(None, result) mock_ps_db_setting.objects.get().delete.assert_not_called() po_call_args = mock_pretty_output().__enter__().write.call_args_list self.assertEqual(1, len(po_call_args)) self.assertEqual('Aborted. PersistentStoreDatabaseSetting not removed.', po_call_args[0][0][0])
def test_remove_ps_database_setting_do_not_proceed(self, mock_app, mock_ps_db_setting, mock_pretty_output, mock_input): # Mock up for TethysApp and PersistentStoreDatabaseSetting mock_app.objects.get.return_value = mock.MagicMock() mock_ps_db_setting.objects.get.return_value = mock.MagicMock() mock_ps_db_setting.objects.get().delete.return_value = True mock_input.side_effect = ['foo', 'N'] mock_app_package = mock.MagicMock() mock_name = mock.MagicMock() # Based on the raw_input, delete not called and None returned result = utilities.remove_ps_database_setting(app_package=mock_app_package, name=mock_name) self.assertEqual(None, result) mock_ps_db_setting.objects.get().delete.assert_not_called() po_call_args = mock_pretty_output().__enter__().write.call_args_list self.assertEqual(1, len(po_call_args)) self.assertEqual('Aborted. PersistentStoreDatabaseSetting not removed.', po_call_args[0][0][0])