mirror of https://github.com/GNOME/gimp.git
132 lines
4.6 KiB
Python
Executable File
132 lines
4.6 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
#
|
|
# GIMP - The GNU Image Manipulation Program
|
|
# Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
|
#
|
|
# test-file-plug-ins.py
|
|
# Copyright (C) 2021-2024 Jacob Boerema
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
"""Plug-in to test GIMP file import plug-ins from within GIMP."""
|
|
|
|
import sys
|
|
|
|
import gi
|
|
gi.require_version('Gimp', '3.0')
|
|
from gi.repository import Gimp
|
|
|
|
from gi.repository import GLib
|
|
|
|
from gimpconfig import GimpConfig
|
|
from gimplogger import GimpLogger
|
|
from gimptestframework import GimpTestRunner, GimpExportTestRunner, AUTHORS, YEARS, VERSION
|
|
from gimpexporttests import BmpExportTests
|
|
|
|
|
|
#DEBUGGING=True
|
|
DEBUGGING=False
|
|
|
|
#PRINT_VERBOSE = True
|
|
PRINT_VERBOSE = False
|
|
|
|
LOG_APPEND = False
|
|
|
|
|
|
class PythonTest (Gimp.PlugIn):
|
|
|
|
def __init__(self):
|
|
Gimp.PlugIn.__init__(self)
|
|
self.test_cfg = None
|
|
self.log = None
|
|
|
|
## GimpPlugIn virtual methods ##
|
|
def do_set_i18n(self, _name):
|
|
# We don't support internationalization here...
|
|
return False
|
|
|
|
def do_query_procedures(self):
|
|
return [ 'test-import-plug-ins',
|
|
'test-export-plug-ins' ]
|
|
|
|
def do_create_procedure(self, name):
|
|
|
|
if name == 'test-import-plug-ins':
|
|
procedure = Gimp.ImageProcedure.new(self, name,
|
|
Gimp.PDBProcType.PLUGIN,
|
|
self.run_import_tests, None)
|
|
procedure.set_image_types("*")
|
|
procedure.set_sensitivity_mask(Gimp.ProcedureSensitivityMask.ALWAYS)
|
|
procedure.set_menu_label('Test file _import plug-ins')
|
|
procedure.add_menu_path('<Image>/Filters/Development/Python-Fu/')
|
|
procedure.set_documentation('Run file import plug-in tests',
|
|
'Run file import plug-in tests',
|
|
name)
|
|
elif name == 'test-export-plug-ins':
|
|
procedure = Gimp.ImageProcedure.new(self, name,
|
|
Gimp.PDBProcType.PLUGIN,
|
|
self.run_export_tests, None)
|
|
procedure.set_image_types("*")
|
|
procedure.set_sensitivity_mask(Gimp.ProcedureSensitivityMask.ALWAYS)
|
|
procedure.set_menu_label('Test file _export plug-ins')
|
|
procedure.add_menu_path('<Image>/Filters/Development/Python-Fu/')
|
|
procedure.set_documentation('Run file export plug-in tests',
|
|
'Run file export plug-in tests',
|
|
name)
|
|
else:
|
|
return None
|
|
|
|
procedure.set_attribution(AUTHORS, #author
|
|
AUTHORS, #copyright
|
|
YEARS) #year
|
|
return procedure
|
|
|
|
def init_logging(self):
|
|
self.test_cfg = GimpConfig()
|
|
|
|
self.log = GimpLogger(True, self.test_cfg.log_file, LOG_APPEND, PRINT_VERBOSE, DEBUGGING)
|
|
|
|
def run_import_tests(self, procedure, _run_mode, _image,
|
|
_drawable, _config, _data):
|
|
self.init_logging()
|
|
|
|
if self.log.enabled:
|
|
runner = GimpTestRunner(self.log, "import", self.test_cfg)
|
|
runner.run_tests()
|
|
|
|
return procedure.new_return_values(Gimp.PDBStatusType.SUCCESS, GLib.Error())
|
|
|
|
def run_export_tests(self, procedure, _run_mode, _image,
|
|
_drawable, _config, _data):
|
|
self.init_logging()
|
|
|
|
if self.log.enabled:
|
|
runner = GimpExportTestRunner(self.log, "export", self.test_cfg)
|
|
if not runner:
|
|
self.log.error("Failed to create export test runner!")
|
|
else:
|
|
runner.load_test_configs()
|
|
|
|
bmp_tests = BmpExportTests("bmp", self.log)
|
|
runner.add_test(bmp_tests)
|
|
|
|
# Add additional tests here
|
|
|
|
runner.run_tests()
|
|
|
|
return procedure.new_return_values(Gimp.PDBStatusType.SUCCESS, GLib.Error())
|
|
|
|
Gimp.main(PythonTest.__gtype__, sys.argv)
|