]> git.ipfire.org Git - pakfire.git/commitdiff
python: Add exceptions for check operation
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 19 Aug 2022 13:57:03 +0000 (13:57 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 19 Aug 2022 13:57:03 +0000 (13:57 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/_pakfire/_pakfiremodule.c
src/_pakfire/errors.h

index 92cd54cbaf2f9cda132c826cf20af17df1596a0b..b00b000de2a43c2a277dbda7e42cd5be95dc4f2b 100644 (file)
@@ -41,6 +41,9 @@ PyObject* PyExc_BadSignatureError;
 PyObject* PyExc_CommandExecutionError;
 PyObject* PyExc_DependencyError;
 
+PyObject* PyExc_CheckError;
+PyObject* PyExc_CheckFileVerificationError;
+
 static PyObject* _pakfire_native_arch(void) {
        const char* arch = pakfire_arch_native();
        if (!arch)
@@ -85,6 +88,31 @@ PyMODINIT_FUNC PyInit__pakfire(void) {
        Py_INCREF(PyExc_DependencyError);
        PyModule_AddObject(module, "DependencyError", PyExc_DependencyError);
 
+       // Check Exceptions
+
+       // CheckError
+       PyExc_CheckError = PyErr_NewException("_pakfire.CheckError", NULL, NULL);
+       Py_INCREF(PyExc_CheckError);
+       if (PyModule_AddObject(module, "CheckError", PyExc_CheckError) < 0) {
+               Py_XDECREF(PyExc_CheckError);
+               Py_CLEAR(PyExc_CheckError);
+               goto ERROR;
+       }
+
+       // CheckFileVerificationError based on CheckError
+       PyExc_CheckFileVerificationError = PyErr_NewExceptionWithDoc(
+               "_pakfire.CheckFileVerificationError",
+               "The file verification process failed",
+               PyExc_CheckError,
+               NULL
+       );
+       Py_INCREF(PyExc_CheckFileVerificationError);
+       if (PyModule_AddObject(module, "CheckFileVerificationError", PyExc_CheckFileVerificationError) < 0) {
+               Py_XDECREF(PyExc_CheckFileVerificationError);
+               Py_CLEAR(PyExc_CheckFileVerificationError);
+               goto ERROR;
+       }
+
        // Add digest constants
        if (PyModule_AddIntMacro(module, PAKFIRE_DIGEST_SHA512))
                return NULL;
@@ -153,4 +181,9 @@ PyMODINIT_FUNC PyInit__pakfire(void) {
        PyModule_AddObject(module, "Solution", (PyObject *)&SolutionType);
 
        return module;
+
+ERROR:
+       Py_DECREF(module);
+
+       return NULL;
 }
index 52a52e8960c6dfc03e6329646dd3adf4d6142c4a..f1f5d465b29242c393be325957659b6e9e7c8c8f 100644 (file)
@@ -28,4 +28,7 @@ extern PyObject* PyExc_BadSignatureError;
 extern PyObject* PyExc_CommandExecutionError;
 extern PyObject* PyExc_DependencyError;
 
+extern PyObject* PyExc_CheckError;
+extern PyObject* PyExc_CheckFileVerificationError;
+
 #endif /* PYTHON_PAKFIRE_ERRORS_H */