def test_create_ps_database_setting_ps_database_setting_exceptions( self, mock_app, mock_ps_db_setting, mock_pretty_output, mock_print): from django.core.exceptions import ObjectDoesNotExist # Mock up for TethysApp to exist and PersistentStoreDatabaseSetting to throw exceptions mock_app.objects.get.return_value = mock.MagicMock() mock_ps_db_setting.objects.get.side_effect = ObjectDoesNotExist mock_ps_db_setting().save.side_effect = Exception('foo exception') mock_app_package = mock.MagicMock() mock_name = mock.MagicMock() # PersistentStoreDatabaseSetting should exist, and False returned result = utilities.create_ps_database_setting( app_package=mock_app_package, name=mock_name) self.assertEqual(False, result) mock_ps_db_setting.assert_called() mock_ps_db_setting().save.assert_called() po_call_args = mock_pretty_output().__enter__().write.call_args_list self.assertEqual(1, len(po_call_args)) self.assertIn('The above error was encountered. Aborted.', po_call_args[0][0][0]) rts_call_args = mock_print.call_args_list self.assertIn('foo exception', rts_call_args[0][0][0].args[0])
def test_create_ps_database_setting_ps_database_setting_exists(self, mock_app, mock_ps_db_setting, mock_pretty_output): # Mock up for TethysApp and PersistentStoreDatabaseSetting to exist mock_app.objects.get.return_value = mock.MagicMock() mock_ps_db_setting.objects.get.return_value = mock.MagicMock() mock_app_package = mock.MagicMock() mock_name = mock.MagicMock() # PersistentStoreDatabaseSetting should exist, and False returned result = utilities.create_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 PersistentStoreDatabaseSetting with name', po_call_args[0][0][0]) self.assertIn('already exists. Aborted.', po_call_args[0][0][0])
def test_create_ps_database_setting_app_does_not_exist(self, mock_app, mock_pretty_output): from django.core.exceptions import ObjectDoesNotExist # Mock up for TethysApp to not exist mock_app.objects.get.side_effect = ObjectDoesNotExist mock_app_package = mock.MagicMock() mock_name = mock.MagicMock() # ObjectDoesNotExist should be thrown, and False returned result = utilities.create_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_create_ps_database_setting_ps_database_savess(self, mock_app, mock_ps_db_setting, mock_pretty_output): # Mock up for TethysApp to exist and PersistentStoreDatabaseSetting to not mock_app.objects.get.return_value = mock.MagicMock() mock_ps_db_setting.objects.get.return_value = False mock_ps_db_setting().save.return_value = True mock_app_package = mock.MagicMock() mock_name = mock.MagicMock() # True should be returned result = utilities.create_ps_database_setting(app_package=mock_app_package, name=mock_name) self.assertEqual(True, result) mock_ps_db_setting.assert_called() mock_ps_db_setting().save.assert_called() po_call_args = mock_pretty_output().__enter__().write.call_args_list self.assertEqual(1, len(po_call_args)) self.assertIn('PersistentStoreDatabaseSetting named', po_call_args[0][0][0]) self.assertIn('created successfully!', po_call_args[0][0][0])
def app_settings_create_ps_database_command(args): from tethys_apps.utilities import create_ps_database_setting app_package = args.app setting_name = args.name setting_description = args.description required = args.required initializer = args.initializer initialized = args.initialized spatial = args.spatial dynamic = args.dynamic success = create_ps_database_setting(app_package, setting_name, setting_description or '', required, initializer or '', initialized, spatial, dynamic) if not success: exit(1) exit(0)
def test_create_ps_database_setting_ps_database_setting_exceptions(self, mock_app, mock_ps_db_setting, mock_pretty_output, mock_print): from django.core.exceptions import ObjectDoesNotExist # Mock up for TethysApp to exist and PersistentStoreDatabaseSetting to throw exceptions mock_app.objects.get.return_value = mock.MagicMock() mock_ps_db_setting.objects.get.side_effect = ObjectDoesNotExist mock_ps_db_setting().save.side_effect = Exception('foo exception') mock_app_package = mock.MagicMock() mock_name = mock.MagicMock() # PersistentStoreDatabaseSetting should exist, and False returned result = utilities.create_ps_database_setting(app_package=mock_app_package, name=mock_name) self.assertEqual(False, result) mock_ps_db_setting.assert_called() mock_ps_db_setting().save.assert_called() po_call_args = mock_pretty_output().__enter__().write.call_args_list self.assertEqual(1, len(po_call_args)) self.assertIn('The above error was encountered. Aborted.', po_call_args[0][0][0]) rts_call_args = mock_print.call_args_list self.assertIn('foo exception', rts_call_args[0][0][0].args[0])