mirror of https://github.com/python/cpython
Use unicode and add a "test" for syslog
This commit is contained in:
parent
a401bbe5f0
commit
8d3654db22
|
@ -0,0 +1,37 @@
|
||||||
|
|
||||||
|
import syslog
|
||||||
|
import unittest
|
||||||
|
from test import test_support
|
||||||
|
|
||||||
|
# XXX(nnorwitz): This test sucks. I don't know of a platform independent way
|
||||||
|
# to verify that the messages were really logged.
|
||||||
|
# The only purpose of this test is to verify the code doesn't crash or leak.
|
||||||
|
|
||||||
|
class Test(unittest.TestCase):
|
||||||
|
|
||||||
|
def test_openlog(self):
|
||||||
|
syslog.openlog('python')
|
||||||
|
|
||||||
|
def test_syslog(self):
|
||||||
|
syslog.openlog('python')
|
||||||
|
syslog.syslog('test message from python test_syslog')
|
||||||
|
syslog.syslog(syslog.LOG_ERR, 'test error from python test_syslog')
|
||||||
|
|
||||||
|
def test_closelog(self):
|
||||||
|
syslog.openlog('python')
|
||||||
|
syslog.closelog()
|
||||||
|
|
||||||
|
def test_setlogmask(self):
|
||||||
|
syslog.setlogmask(syslog.LOG_DEBUG)
|
||||||
|
|
||||||
|
def test_log_mask(self):
|
||||||
|
syslog.LOG_MASK(syslog.LOG_INFO)
|
||||||
|
|
||||||
|
def test_log_upto(self):
|
||||||
|
syslog.LOG_UPTO(syslog.LOG_INFO)
|
||||||
|
|
||||||
|
def test_main():
|
||||||
|
test_support.run_unittest(__name__)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
test_main()
|
|
@ -58,9 +58,10 @@ syslog_openlog(PyObject * self, PyObject * args)
|
||||||
long logopt = 0;
|
long logopt = 0;
|
||||||
long facility = LOG_USER;
|
long facility = LOG_USER;
|
||||||
PyObject *new_S_ident_o;
|
PyObject *new_S_ident_o;
|
||||||
|
const char *ident;
|
||||||
|
|
||||||
if (!PyArg_ParseTuple(args,
|
if (!PyArg_ParseTuple(args,
|
||||||
"S|ll;ident string [, logoption [, facility]]",
|
"U|ll;ident string [, logoption [, facility]]",
|
||||||
&new_S_ident_o, &logopt, &facility))
|
&new_S_ident_o, &logopt, &facility))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
@ -71,7 +72,10 @@ syslog_openlog(PyObject * self, PyObject * args)
|
||||||
S_ident_o = new_S_ident_o;
|
S_ident_o = new_S_ident_o;
|
||||||
Py_INCREF(S_ident_o);
|
Py_INCREF(S_ident_o);
|
||||||
|
|
||||||
openlog(PyString_AsString(S_ident_o), logopt, facility);
|
ident = PyUnicode_AsString(S_ident_o);
|
||||||
|
if (ident == NULL)
|
||||||
|
return NULL;
|
||||||
|
openlog(ident, logopt, facility);
|
||||||
|
|
||||||
Py_INCREF(Py_None);
|
Py_INCREF(Py_None);
|
||||||
return Py_None;
|
return Py_None;
|
||||||
|
@ -81,17 +85,21 @@ syslog_openlog(PyObject * self, PyObject * args)
|
||||||
static PyObject *
|
static PyObject *
|
||||||
syslog_syslog(PyObject * self, PyObject * args)
|
syslog_syslog(PyObject * self, PyObject * args)
|
||||||
{
|
{
|
||||||
char *message;
|
PyObject *message_object;
|
||||||
|
const char *message;
|
||||||
int priority = LOG_INFO;
|
int priority = LOG_INFO;
|
||||||
|
|
||||||
if (!PyArg_ParseTuple(args, "is;[priority,] message string",
|
if (!PyArg_ParseTuple(args, "iU;[priority,] message string",
|
||||||
&priority, &message)) {
|
&priority, &message_objecct)) {
|
||||||
PyErr_Clear();
|
PyErr_Clear();
|
||||||
if (!PyArg_ParseTuple(args, "s;[priority,] message string",
|
if (!PyArg_ParseTuple(args, "U;[priority,] message string",
|
||||||
&message))
|
&message_objecct))
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message = PyUnicode_AsString(message_object);
|
||||||
|
if (message == NULL)
|
||||||
|
return NULL;
|
||||||
syslog(priority, "%s", message);
|
syslog(priority, "%s", message);
|
||||||
Py_INCREF(Py_None);
|
Py_INCREF(Py_None);
|
||||||
return Py_None;
|
return Py_None;
|
||||||
|
|
Loading…
Reference in New Issue