mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-05 00:09:32 -04:00
Ignore LC_ALL: cannot change locale when testing std output
This commit is contained in:
parent
887d3f6121
commit
7dbd894c8e
@ -316,6 +316,29 @@ class QgisTestCase(unittest.TestCase):
|
|||||||
file_path[1:] if file_path.startswith("/") else file_path
|
file_path[1:] if file_path.startswith("/") else file_path
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def strip_std_ignorable_errors(output: str) -> str:
|
||||||
|
"""
|
||||||
|
Strips out ignorable warnings and errors from stdout/stderr output
|
||||||
|
"""
|
||||||
|
return "\n".join(
|
||||||
|
[
|
||||||
|
e
|
||||||
|
for e in output.splitlines()
|
||||||
|
if e
|
||||||
|
not in (
|
||||||
|
"Problem with GRASS installation: GRASS was not found or is not correctly installed",
|
||||||
|
"QStandardPaths: wrong permissions on runtime directory /tmp, 0777 instead of 0700",
|
||||||
|
"MESA: error: ZINK: failed to choose pdev",
|
||||||
|
"MESA: error: ZINK: vkEnumeratePhysicalDevices failed (VK_ERROR_INITIALIZATION_FAILED)",
|
||||||
|
"glx: failed to create drisw screen",
|
||||||
|
"failed to load driver: zink",
|
||||||
|
"QML debugging is enabled. Only use this in a safe environment.",
|
||||||
|
)
|
||||||
|
and not "LC_ALL: cannot change locale" in e
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
def assertLayersEqual(self, layer_expected, layer_result, **kwargs):
|
def assertLayersEqual(self, layer_expected, layer_result, **kwargs):
|
||||||
"""
|
"""
|
||||||
:param layer_expected: The first layer to compare
|
:param layer_expected: The first layer to compare
|
||||||
|
@ -55,7 +55,7 @@ class TestQgsBlockingProcess(QgisTestCase):
|
|||||||
self.assertEqual(p.run(f), 0)
|
self.assertEqual(p.run(f), 0)
|
||||||
self.assertEqual(p.exitStatus(), QProcess.ExitStatus.NormalExit)
|
self.assertEqual(p.exitStatus(), QProcess.ExitStatus.NormalExit)
|
||||||
self.assertIn("GDAL", std_out.val)
|
self.assertIn("GDAL", std_out.val)
|
||||||
self.assertEqual(std_err.val, "")
|
self.assertEqual(QgisTestCase.strip_std_ignorable_errors(std_err.val), "")
|
||||||
|
|
||||||
def test_process_err(self):
|
def test_process_err(self):
|
||||||
temp_folder = tempfile.mkdtemp()
|
temp_folder = tempfile.mkdtemp()
|
||||||
@ -88,8 +88,12 @@ exit 1"""
|
|||||||
f = QgsFeedback()
|
f = QgsFeedback()
|
||||||
self.assertEqual(p.run(f), 1)
|
self.assertEqual(p.run(f), 1)
|
||||||
self.assertEqual(p.exitStatus(), QProcess.ExitStatus.NormalExit)
|
self.assertEqual(p.exitStatus(), QProcess.ExitStatus.NormalExit)
|
||||||
self.assertIn("This goes to stdout", std_out.val)
|
self.assertIn(
|
||||||
self.assertIn("This goes to stderr", std_err.val)
|
"This goes to stdout", QgisTestCase.strip_std_ignorable_errors(std_out.val)
|
||||||
|
)
|
||||||
|
self.assertIn(
|
||||||
|
"This goes to stderr", QgisTestCase.strip_std_ignorable_errors(std_err.val)
|
||||||
|
)
|
||||||
|
|
||||||
def test_process_crash(self):
|
def test_process_crash(self):
|
||||||
"""
|
"""
|
||||||
@ -176,8 +180,8 @@ exit 1"""
|
|||||||
f = QgsFeedback()
|
f = QgsFeedback()
|
||||||
self.assertEqual(p.run(f), 0)
|
self.assertEqual(p.run(f), 0)
|
||||||
self.assertEqual(p.exitStatus(), QProcess.ExitStatus.NormalExit)
|
self.assertEqual(p.exitStatus(), QProcess.ExitStatus.NormalExit)
|
||||||
self.assertFalse(std_out.val.strip())
|
self.assertFalse(QgisTestCase.strip_std_ignorable_errors(std_out.val).strip())
|
||||||
self.assertFalse(std_err.val.strip())
|
self.assertFalse(QgisTestCase.strip_std_ignorable_errors(std_err.val).strip())
|
||||||
|
|
||||||
# set environment variable
|
# set environment variable
|
||||||
os.environ["my_var"] = "my test variable"
|
os.environ["my_var"] = "my test variable"
|
||||||
@ -190,8 +194,11 @@ exit 1"""
|
|||||||
f = QgsFeedback()
|
f = QgsFeedback()
|
||||||
self.assertEqual(p.run(f), 0)
|
self.assertEqual(p.run(f), 0)
|
||||||
self.assertEqual(p.exitStatus(), QProcess.ExitStatus.NormalExit)
|
self.assertEqual(p.exitStatus(), QProcess.ExitStatus.NormalExit)
|
||||||
self.assertEqual(std_out.val.strip(), "my test variable")
|
self.assertEqual(
|
||||||
self.assertFalse(std_err.val.strip())
|
QgisTestCase.strip_std_ignorable_errors(std_out.val).strip(),
|
||||||
|
"my test variable",
|
||||||
|
)
|
||||||
|
self.assertFalse(QgisTestCase.strip_std_ignorable_errors(std_err.val).strip())
|
||||||
|
|
||||||
# test python changing path
|
# test python changing path
|
||||||
|
|
||||||
@ -212,8 +219,10 @@ exit 1"""
|
|||||||
f = QgsFeedback()
|
f = QgsFeedback()
|
||||||
self.assertEqual(p.run(f), 0)
|
self.assertEqual(p.run(f), 0)
|
||||||
self.assertEqual(p.exitStatus(), QProcess.ExitStatus.NormalExit)
|
self.assertEqual(p.exitStatus(), QProcess.ExitStatus.NormalExit)
|
||||||
self.assertEqual(std_out.val.strip(), new_path)
|
self.assertEqual(
|
||||||
self.assertFalse(std_err.val.strip())
|
QgisTestCase.strip_std_ignorable_errors(std_out.val).strip(), new_path
|
||||||
|
)
|
||||||
|
self.assertFalse(QgisTestCase.strip_std_ignorable_errors(std_err.val).strip())
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
@ -19,8 +19,7 @@ import subprocess
|
|||||||
import sys
|
import sys
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
from qgis.testing import unittest
|
from qgis.testing import QgisTestCase, unittest
|
||||||
|
|
||||||
from utilities import unitTestDataPath
|
from utilities import unitTestDataPath
|
||||||
|
|
||||||
print("CTEST_FULL_OUTPUT")
|
print("CTEST_FULL_OUTPUT")
|
||||||
@ -28,7 +27,7 @@ print("CTEST_FULL_OUTPUT")
|
|||||||
TEST_DATA_DIR = unitTestDataPath()
|
TEST_DATA_DIR = unitTestDataPath()
|
||||||
|
|
||||||
|
|
||||||
class TestQgsProcessExecutablePt1(unittest.TestCase):
|
class TestQgsProcessExecutablePt1(QgisTestCase):
|
||||||
|
|
||||||
TMP_DIR = ""
|
TMP_DIR = ""
|
||||||
|
|
||||||
@ -44,25 +43,6 @@ class TestQgsProcessExecutablePt1(unittest.TestCase):
|
|||||||
super().tearDownClass()
|
super().tearDownClass()
|
||||||
shutil.rmtree(cls.TMP_DIR, ignore_errors=True)
|
shutil.rmtree(cls.TMP_DIR, ignore_errors=True)
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def _strip_ignorable_errors(output: str):
|
|
||||||
return "\n".join(
|
|
||||||
[
|
|
||||||
e
|
|
||||||
for e in output.splitlines()
|
|
||||||
if e
|
|
||||||
not in (
|
|
||||||
"Problem with GRASS installation: GRASS was not found or is not correctly installed",
|
|
||||||
"QStandardPaths: wrong permissions on runtime directory /tmp, 0777 instead of 0700",
|
|
||||||
"MESA: error: ZINK: failed to choose pdev",
|
|
||||||
"MESA: error: ZINK: vkEnumeratePhysicalDevices failed (VK_ERROR_INITIALIZATION_FAILED)",
|
|
||||||
"glx: failed to create drisw screen",
|
|
||||||
"failed to load driver: zink",
|
|
||||||
"QML debugging is enabled. Only use this in a safe environment.",
|
|
||||||
)
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|
||||||
def run_process(self, arguments):
|
def run_process(self, arguments):
|
||||||
call = [QGIS_PROCESS_BIN] + arguments
|
call = [QGIS_PROCESS_BIN] + arguments
|
||||||
print(" ".join(call))
|
print(" ".join(call))
|
||||||
@ -100,7 +80,7 @@ class TestQgsProcessExecutablePt1(unittest.TestCase):
|
|||||||
def testNoArgs(self):
|
def testNoArgs(self):
|
||||||
rc, output, err = self.run_process([])
|
rc, output, err = self.run_process([])
|
||||||
self.assertIn("Available commands", output)
|
self.assertIn("Available commands", output)
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
|
|
||||||
def testPlugins(self):
|
def testPlugins(self):
|
||||||
@ -109,7 +89,7 @@ class TestQgsProcessExecutablePt1(unittest.TestCase):
|
|||||||
self.assertIn("available plugins", output.lower())
|
self.assertIn("available plugins", output.lower())
|
||||||
self.assertIn("processing", output.lower())
|
self.assertIn("processing", output.lower())
|
||||||
self.assertNotIn("metasearch", output.lower())
|
self.assertNotIn("metasearch", output.lower())
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
|
|
||||||
def testPluginsSkipLoading(self):
|
def testPluginsSkipLoading(self):
|
||||||
@ -118,7 +98,7 @@ class TestQgsProcessExecutablePt1(unittest.TestCase):
|
|||||||
self.assertIn("available plugins", output.lower())
|
self.assertIn("available plugins", output.lower())
|
||||||
self.assertIn("processing", output.lower())
|
self.assertIn("processing", output.lower())
|
||||||
self.assertNotIn("metasearch", output.lower())
|
self.assertNotIn("metasearch", output.lower())
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
|
|
||||||
def testPluginStatus(self):
|
def testPluginStatus(self):
|
||||||
@ -138,12 +118,12 @@ class TestQgsProcessExecutablePt1(unittest.TestCase):
|
|||||||
rc, output, err = self.run_process(["plugins"])
|
rc, output, err = self.run_process(["plugins"])
|
||||||
self.assertIn("available plugins", output.lower())
|
self.assertIn("available plugins", output.lower())
|
||||||
self.assertIn("* grassprovider", output.lower())
|
self.assertIn("* grassprovider", output.lower())
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
|
|
||||||
# disable
|
# disable
|
||||||
rc, output, err = self.run_process(["plugins", "disable", "grassprovider"])
|
rc, output, err = self.run_process(["plugins", "disable", "grassprovider"])
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
|
|
||||||
# try to re-disable
|
# try to re-disable
|
||||||
@ -154,17 +134,17 @@ class TestQgsProcessExecutablePt1(unittest.TestCase):
|
|||||||
rc, output, err = self.run_process(["plugins"])
|
rc, output, err = self.run_process(["plugins"])
|
||||||
self.assertIn("available plugins", output.lower())
|
self.assertIn("available plugins", output.lower())
|
||||||
self.assertNotIn("* grassprovider", output.lower())
|
self.assertNotIn("* grassprovider", output.lower())
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
|
|
||||||
rc, output, err = self.run_process(["plugins", "enable", "grassprovider"])
|
rc, output, err = self.run_process(["plugins", "enable", "grassprovider"])
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
|
|
||||||
rc, output, err = self.run_process(["plugins"])
|
rc, output, err = self.run_process(["plugins"])
|
||||||
self.assertIn("available plugins", output.lower())
|
self.assertIn("available plugins", output.lower())
|
||||||
self.assertIn("* grassprovider", output.lower())
|
self.assertIn("* grassprovider", output.lower())
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
|
|
||||||
if not previously_enabled:
|
if not previously_enabled:
|
||||||
@ -198,7 +178,7 @@ class TestQgsProcessExecutablePt1(unittest.TestCase):
|
|||||||
self.assertIn("available algorithms", output.lower())
|
self.assertIn("available algorithms", output.lower())
|
||||||
self.assertIn("native:reprojectlayer", output.lower())
|
self.assertIn("native:reprojectlayer", output.lower())
|
||||||
self.assertIn("gdal:translate", output.lower())
|
self.assertIn("gdal:translate", output.lower())
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
|
|
||||||
def testAlgorithmListNoPython(self):
|
def testAlgorithmListNoPython(self):
|
||||||
@ -206,7 +186,7 @@ class TestQgsProcessExecutablePt1(unittest.TestCase):
|
|||||||
self.assertIn("available algorithms", output.lower())
|
self.assertIn("available algorithms", output.lower())
|
||||||
self.assertIn("native:reprojectlayer", output.lower())
|
self.assertIn("native:reprojectlayer", output.lower())
|
||||||
self.assertNotIn("gdal:translate", output.lower())
|
self.assertNotIn("gdal:translate", output.lower())
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
|
|
||||||
def testAlgorithmsListJson(self):
|
def testAlgorithmsListJson(self):
|
||||||
@ -240,7 +220,7 @@ class TestQgsProcessExecutablePt1(unittest.TestCase):
|
|||||||
rc, output, err = self.run_process(["help", "--no-python", "native:centroids"])
|
rc, output, err = self.run_process(["help", "--no-python", "native:centroids"])
|
||||||
self.assertIn("representing the centroid", output.lower())
|
self.assertIn("representing the centroid", output.lower())
|
||||||
self.assertIn("argument type", output.lower())
|
self.assertIn("argument type", output.lower())
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
|
|
||||||
def testAlgorithmHelpJson(self):
|
def testAlgorithmHelpJson(self):
|
||||||
@ -293,7 +273,7 @@ class TestQgsProcessExecutablePt1(unittest.TestCase):
|
|||||||
f"--OUTPUT={output_file}",
|
f"--OUTPUT={output_file}",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertIn("0...10...20...30...40...50...60...70...80...90", output.lower())
|
self.assertIn("0...10...20...30...40...50...60...70...80...90", output.lower())
|
||||||
self.assertIn("results", output.lower())
|
self.assertIn("results", output.lower())
|
||||||
self.assertIn("OUTPUT:\t" + output_file, output)
|
self.assertIn("OUTPUT:\t" + output_file, output)
|
||||||
@ -312,7 +292,7 @@ class TestQgsProcessExecutablePt1(unittest.TestCase):
|
|||||||
f"OUTPUT={output_file}",
|
f"OUTPUT={output_file}",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertIn("0...10...20...30...40...50...60...70...80...90", output.lower())
|
self.assertIn("0...10...20...30...40...50...60...70...80...90", output.lower())
|
||||||
self.assertIn("results", output.lower())
|
self.assertIn("results", output.lower())
|
||||||
self.assertIn("OUTPUT:\t" + output_file, output)
|
self.assertIn("OUTPUT:\t" + output_file, output)
|
||||||
@ -329,7 +309,7 @@ class TestQgsProcessExecutablePt1(unittest.TestCase):
|
|||||||
rc, output, err = self.run_process_stdin(
|
rc, output, err = self.run_process_stdin(
|
||||||
["run", "--no-python", "native:centroids", "-"], json.dumps(params)
|
["run", "--no-python", "native:centroids", "-"], json.dumps(params)
|
||||||
)
|
)
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
|
|
||||||
res = json.loads(output)
|
res = json.loads(output)
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ import subprocess
|
|||||||
import sys
|
import sys
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
from qgis.testing import unittest
|
from qgis.testing import QgisTestCase, unittest
|
||||||
|
|
||||||
from utilities import unitTestDataPath
|
from utilities import unitTestDataPath
|
||||||
|
|
||||||
@ -28,7 +28,7 @@ print("CTEST_FULL_OUTPUT")
|
|||||||
TEST_DATA_DIR = unitTestDataPath()
|
TEST_DATA_DIR = unitTestDataPath()
|
||||||
|
|
||||||
|
|
||||||
class TestQgsProcessExecutablePt2(unittest.TestCase):
|
class TestQgsProcessExecutablePt2(QgisTestCase):
|
||||||
|
|
||||||
TMP_DIR = ""
|
TMP_DIR = ""
|
||||||
|
|
||||||
@ -44,25 +44,6 @@ class TestQgsProcessExecutablePt2(unittest.TestCase):
|
|||||||
super().tearDownClass()
|
super().tearDownClass()
|
||||||
shutil.rmtree(cls.TMP_DIR, ignore_errors=True)
|
shutil.rmtree(cls.TMP_DIR, ignore_errors=True)
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def _strip_ignorable_errors(output: str):
|
|
||||||
return "\n".join(
|
|
||||||
[
|
|
||||||
e
|
|
||||||
for e in output.splitlines()
|
|
||||||
if e
|
|
||||||
not in (
|
|
||||||
"Problem with GRASS installation: GRASS was not found or is not correctly installed",
|
|
||||||
"QStandardPaths: wrong permissions on runtime directory /tmp, 0777 instead of 0700",
|
|
||||||
"MESA: error: ZINK: failed to choose pdev",
|
|
||||||
"MESA: error: ZINK: vkEnumeratePhysicalDevices failed (VK_ERROR_INITIALIZATION_FAILED)",
|
|
||||||
"glx: failed to create drisw screen",
|
|
||||||
"failed to load driver: zink",
|
|
||||||
"QML debugging is enabled. Only use this in a safe environment.",
|
|
||||||
)
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|
||||||
def run_process(self, arguments):
|
def run_process(self, arguments):
|
||||||
call = [QGIS_PROCESS_BIN] + arguments
|
call = [QGIS_PROCESS_BIN] + arguments
|
||||||
print(" ".join(call))
|
print(" ".join(call))
|
||||||
@ -192,7 +173,7 @@ class TestQgsProcessExecutablePt2(unittest.TestCase):
|
|||||||
rc, output, err = self.run_process(
|
rc, output, err = self.run_process(
|
||||||
["help", "--no-python", TEST_DATA_DIR + "/test_model.model3"]
|
["help", "--no-python", TEST_DATA_DIR + "/test_model.model3"]
|
||||||
)
|
)
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
self.assertIn("model description", output.lower())
|
self.assertIn("model description", output.lower())
|
||||||
self.assertIn("author of model", output.lower())
|
self.assertIn("author of model", output.lower())
|
||||||
@ -212,7 +193,7 @@ class TestQgsProcessExecutablePt2(unittest.TestCase):
|
|||||||
f"native:centroids_1:CENTROIDS={output_file}",
|
f"native:centroids_1:CENTROIDS={output_file}",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
self.assertIn("0...10...20...30...40...50...60...70...80...90", output.lower())
|
self.assertIn("0...10...20...30...40...50...60...70...80...90", output.lower())
|
||||||
self.assertIn("results", output.lower())
|
self.assertIn("results", output.lower())
|
||||||
@ -232,7 +213,7 @@ class TestQgsProcessExecutablePt2(unittest.TestCase):
|
|||||||
["run", "--no-python", TEST_DATA_DIR + "/test_model.model3", "-"],
|
["run", "--no-python", TEST_DATA_DIR + "/test_model.model3", "-"],
|
||||||
json.dumps(params),
|
json.dumps(params),
|
||||||
)
|
)
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
|
|
||||||
res = json.loads(output)
|
res = json.loads(output)
|
||||||
@ -258,7 +239,7 @@ class TestQgsProcessExecutablePt2(unittest.TestCase):
|
|||||||
f"native:centroids_1:CENTROIDS={output_file}",
|
f"native:centroids_1:CENTROIDS={output_file}",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
|
|
||||||
res = json.loads(output)
|
res = json.loads(output)
|
||||||
@ -296,7 +277,7 @@ class TestQgsProcessExecutablePt2(unittest.TestCase):
|
|||||||
rc, output, err = self.run_process(
|
rc, output, err = self.run_process(
|
||||||
["help", TEST_DATA_DIR + "/convert_to_upper.py"]
|
["help", TEST_DATA_DIR + "/convert_to_upper.py"]
|
||||||
)
|
)
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
self.assertIn("converts a string to upper case", output.lower())
|
self.assertIn("converts a string to upper case", output.lower())
|
||||||
|
|
||||||
@ -304,7 +285,7 @@ class TestQgsProcessExecutablePt2(unittest.TestCase):
|
|||||||
rc, output, err = self.run_process(
|
rc, output, err = self.run_process(
|
||||||
["run", TEST_DATA_DIR + "/convert_to_upper.py", "--", "INPUT=abc"]
|
["run", TEST_DATA_DIR + "/convert_to_upper.py", "--", "INPUT=abc"]
|
||||||
)
|
)
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
self.assertIn("Converted abc to ABC", output)
|
self.assertIn("Converted abc to ABC", output)
|
||||||
self.assertIn("OUTPUT:\tABC", output)
|
self.assertIn("OUTPUT:\tABC", output)
|
||||||
@ -313,7 +294,7 @@ class TestQgsProcessExecutablePt2(unittest.TestCase):
|
|||||||
rc, output, err = self.run_process(
|
rc, output, err = self.run_process(
|
||||||
["run", TEST_DATA_DIR + "/convert_to_upper.py", "--json", "--", "INPUT=abc"]
|
["run", TEST_DATA_DIR + "/convert_to_upper.py", "--json", "--", "INPUT=abc"]
|
||||||
)
|
)
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
|
|
||||||
res = json.loads(output)
|
res = json.loads(output)
|
||||||
@ -334,7 +315,7 @@ class TestQgsProcessExecutablePt2(unittest.TestCase):
|
|||||||
rc, output, err = self.run_process_stdin(
|
rc, output, err = self.run_process_stdin(
|
||||||
["run", TEST_DATA_DIR + "/convert_to_upper.py", "-"], json.dumps(params)
|
["run", TEST_DATA_DIR + "/convert_to_upper.py", "-"], json.dumps(params)
|
||||||
)
|
)
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
|
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
|
|
||||||
@ -385,7 +366,7 @@ class TestQgsProcessExecutablePt2(unittest.TestCase):
|
|||||||
"--another% complex# NaMe=def",
|
"--another% complex# NaMe=def",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
|
|
||||||
self.assertIn("OUTPUT: abc:def", output)
|
self.assertIn("OUTPUT: abc:def", output)
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
@ -400,7 +381,7 @@ class TestQgsProcessExecutablePt2(unittest.TestCase):
|
|||||||
f"--CONDITION=layer_property(load_layer('{TEST_DATA_DIR + '/points.shp'}','ogr'),'feature_count')>10",
|
f"--CONDITION=layer_property(load_layer('{TEST_DATA_DIR + '/points.shp'}','ogr'),'feature_count')>10",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
self.assertIn("CONFIRMED", self._strip_ignorable_errors(err))
|
self.assertIn("CONFIRMED", self.strip_std_ignorable_errors(err))
|
||||||
|
|
||||||
self.assertEqual(rc, 1)
|
self.assertEqual(rc, 1)
|
||||||
|
|
||||||
@ -417,7 +398,7 @@ class TestQgsProcessExecutablePt2(unittest.TestCase):
|
|||||||
"--json",
|
"--json",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
|
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
|
|
||||||
@ -439,7 +420,7 @@ class TestQgsProcessExecutablePt2(unittest.TestCase):
|
|||||||
rc, output, err = self.run_process_stdin(
|
rc, output, err = self.run_process_stdin(
|
||||||
["run", "native:buffer", "-"], json.dumps(params)
|
["run", "native:buffer", "-"], json.dumps(params)
|
||||||
)
|
)
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
|
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
|
|
||||||
@ -457,7 +438,7 @@ class TestQgsProcessExecutablePt2(unittest.TestCase):
|
|||||||
rc, output, err = self.run_process(
|
rc, output, err = self.run_process(
|
||||||
["run", TEST_DATA_DIR + "/report_style_initialization_status.py"]
|
["run", TEST_DATA_DIR + "/report_style_initialization_status.py"]
|
||||||
)
|
)
|
||||||
self.assertFalse(self._strip_ignorable_errors(err))
|
self.assertFalse(self.strip_std_ignorable_errors(err))
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
self.assertIn("IS_INITIALIZED: false", output)
|
self.assertIn("IS_INITIALIZED: false", output)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user