Py_RETURN_NONE;
}
+static PyObject* Parser_read(ParserObject* self, PyObject* args) {
+ const char* filename = NULL;
+
+ if (!PyArg_ParseTuple(args, "s", &filename))
+ return NULL;
+
+ FILE* f = fopen(filename, "r");
+ if (!f) {
+ PyErr_SetFromErrno(PyExc_OSError);
+ return NULL;
+ }
+
+ int r = pakfire_parser_read(self->parser, f);
+ fclose(f);
+
+ if (r) {
+ PyErr_SetFromErrno(PyExc_OSError);
+ return NULL;
+ }
+
+ Py_RETURN_NONE;
+}
+
static PyObject* Parser_get(ParserObject* self, PyObject* args) {
const char* key = NULL;
METH_VARARGS,
NULL,
},
+ {
+ "read",
+ (PyCFunction)Parser_read,
+ METH_VARARGS,
+ NULL,
+ },
{ NULL },
};
#!/usr/bin/python3
+import os
import pakfire
import unittest
dump = "%s" % p
+ def test_read(self):
+ p = Parser(self.pakfire)
+
+ fn = os.path.join(os.environ.get("TEST_DATA_DIR"), "kernel.nm")
+
+ # Read something
+ p.read(fn)
+
+ # Check if we could parse something useful
+ self.assertEqual(p.get("name"), "kernel")
+
if __name__ == "__main__":
unittest.main()