Exemplo n.º 1
0
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)
Exemplo n.º 2
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])
Exemplo n.º 3
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])
Exemplo n.º 4
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])
Exemplo n.º 5
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])
Exemplo n.º 6
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])
Exemplo n.º 7
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])