From adfa874d5d217e7f62f27c752192ab5b2a78cd5e Mon Sep 17 00:00:00 2001 From: Julien Cabieces Date: Wed, 4 Dec 2024 18:53:30 +0100 Subject: [PATCH 1/2] fix(CMYK): Fix test The test was so far working because it was built with a Qt version not completely supporting CMYK. From Qt 6.8 CMYK support is complete. --- .../python/test_qgsprojectstylesettings.py | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/tests/src/python/test_qgsprojectstylesettings.py b/tests/src/python/test_qgsprojectstylesettings.py index b423c4c0242b..6e2098d048c0 100644 --- a/tests/src/python/test_qgsprojectstylesettings.py +++ b/tests/src/python/test_qgsprojectstylesettings.py @@ -18,6 +18,7 @@ Qt, QTemporaryDir, QTemporaryFile, + QT_VERSION ) from qgis.PyQt.QtGui import QColor, QColorSpace, QFont from qgis.PyQt.QtTest import QSignalSpy @@ -889,10 +890,12 @@ def testReadWrite(self): [unitTestDataPath() + "/style1.db", unitTestDataPath() + "/style2.db"], ) + @unittest.skipIf(QT_VERSION < 0x060800, "CMYK support was not complete before Qt 6.8.0") def testColorSettings(self): """ Test ICC profile attachment """ + project = QgsProject() settings = project.styleSettings() self.assertFalse(project.isDirty()) @@ -907,6 +910,7 @@ def testColorSettings(self): project.setDirty(False) self.assertEqual(settings.colorModel(), Qgis.ColorModel.Cmyk) + # set an RGB color space, reset color model to RGB with open(os.path.join(TEST_DATA_DIR, "sRGB2014.icc"), mode="rb") as f: colorSpace = QColorSpace.fromIccProfile(f.read()) @@ -914,10 +918,24 @@ def testColorSettings(self): settings.setColorSpace(colorSpace) self.assertTrue(project.isDirty()) + self.assertEqual(settings.colorModel(), Qgis.ColorModel.Rgb) self.assertTrue(settings.colorSpace().isValid()) self.assertEqual(settings.colorSpace().primaries(), QColorSpace.Primaries.SRgb) self.assertEqual(len(project.attachedFiles()), 2) + # set a CMYK color space, reset color model to CMYK + with open(os.path.join(TEST_DATA_DIR, "CGATS21_CRPC6.icc"), mode="rb") as f: + colorSpace = QColorSpace.fromIccProfile(f.read()) + + self.assertTrue(colorSpace.isValid()) + + settings.setColorSpace(colorSpace) + self.assertTrue(project.isDirty()) + self.assertEqual(settings.colorModel(), Qgis.ColorModel.Cmyk) + self.assertTrue(settings.colorSpace().isValid()) + self.assertEqual(settings.colorSpace().primaries(), QColorSpace.Primaries.Custom) + self.assertEqual(len(project.attachedFiles()), 2) + # save and restore projectFile = QTemporaryFile( QDir.temp().absoluteFilePath("testCmykSettings.qgz") @@ -930,7 +948,7 @@ def testColorSettings(self): settings = project.styleSettings() self.assertEqual(settings.colorModel(), Qgis.ColorModel.Cmyk) self.assertTrue(settings.colorSpace().isValid()) - self.assertEqual(settings.colorSpace().primaries(), QColorSpace.Primaries.SRgb) + self.assertEqual(settings.colorSpace().primaries(), QColorSpace.Primaries.Custom) self.assertEqual(len(project.attachedFiles()), 2) # clear color space From 8b447f219cd5e6429d57c6c23549b94f54f4115e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 9 Dec 2024 06:35:01 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- tests/src/python/test_qgsprojectstylesettings.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/tests/src/python/test_qgsprojectstylesettings.py b/tests/src/python/test_qgsprojectstylesettings.py index 6e2098d048c0..2222520abc64 100644 --- a/tests/src/python/test_qgsprojectstylesettings.py +++ b/tests/src/python/test_qgsprojectstylesettings.py @@ -18,7 +18,7 @@ Qt, QTemporaryDir, QTemporaryFile, - QT_VERSION + QT_VERSION, ) from qgis.PyQt.QtGui import QColor, QColorSpace, QFont from qgis.PyQt.QtTest import QSignalSpy @@ -890,7 +890,9 @@ def testReadWrite(self): [unitTestDataPath() + "/style1.db", unitTestDataPath() + "/style2.db"], ) - @unittest.skipIf(QT_VERSION < 0x060800, "CMYK support was not complete before Qt 6.8.0") + @unittest.skipIf( + QT_VERSION < 0x060800, "CMYK support was not complete before Qt 6.8.0" + ) def testColorSettings(self): """ Test ICC profile attachment @@ -933,7 +935,9 @@ def testColorSettings(self): self.assertTrue(project.isDirty()) self.assertEqual(settings.colorModel(), Qgis.ColorModel.Cmyk) self.assertTrue(settings.colorSpace().isValid()) - self.assertEqual(settings.colorSpace().primaries(), QColorSpace.Primaries.Custom) + self.assertEqual( + settings.colorSpace().primaries(), QColorSpace.Primaries.Custom + ) self.assertEqual(len(project.attachedFiles()), 2) # save and restore @@ -948,7 +952,9 @@ def testColorSettings(self): settings = project.styleSettings() self.assertEqual(settings.colorModel(), Qgis.ColorModel.Cmyk) self.assertTrue(settings.colorSpace().isValid()) - self.assertEqual(settings.colorSpace().primaries(), QColorSpace.Primaries.Custom) + self.assertEqual( + settings.colorSpace().primaries(), QColorSpace.Primaries.Custom + ) self.assertEqual(len(project.attachedFiles()), 2) # clear color space