Ejemplo n.º 1
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])
Ejemplo n.º 2
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])
Ejemplo n.º 3
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])
Ejemplo n.º 4
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])
Ejemplo n.º 5
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])
Ejemplo n.º 6
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])
Ejemplo n.º 7
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)
Ejemplo n.º 8
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])
Ejemplo n.º 9
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])