Merge remote-tracking branch 'encukou/git_signature_now'
This commit is contained in:
commit
8ca19bb723
@ -49,7 +49,7 @@ Signature_init(Signature *self, PyObject *args, PyObject *kwds)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!PyArg_ParseTuple(args, "OsLi|s",
|
||||
if (!PyArg_ParseTuple(args, "Os|Lis",
|
||||
&py_name, &email, &time, &offset, &encoding))
|
||||
return -1;
|
||||
|
||||
@ -57,7 +57,14 @@ Signature_init(Signature *self, PyObject *args, PyObject *kwds)
|
||||
if (name == NULL)
|
||||
return -1;
|
||||
|
||||
err = git_signature_new(&signature, name, email, time, offset);
|
||||
if (PySequence_Length(args) == 2) {
|
||||
err = git_signature_now(&signature, name, email);
|
||||
} else if (PySequence_Length(args) == 3) {
|
||||
PyErr_SetString(PyExc_TypeError, "offset must be specified with time");
|
||||
return -1;
|
||||
} else {
|
||||
err = git_signature_new(&signature, name, email, time, offset);
|
||||
}
|
||||
free(name);
|
||||
if (err < 0) {
|
||||
Error_set(err);
|
||||
|
@ -28,6 +28,7 @@
|
||||
from __future__ import absolute_import
|
||||
from __future__ import unicode_literals
|
||||
import unittest
|
||||
import time
|
||||
|
||||
from pygit2 import Signature
|
||||
from .utils import NoRepoTestCase
|
||||
@ -50,6 +51,17 @@ class SignatureTest(NoRepoTestCase):
|
||||
self.assertEqual(signature.name, signature._name.decode(encoding))
|
||||
self.assertEqual(signature.name.encode(encoding), signature._name)
|
||||
|
||||
def test_now(self):
|
||||
self.assertRaises(TypeError, Signature, 'Foo Ibáñez',
|
||||
'foo@example.com', 1322174594)
|
||||
signature = Signature('Foo Ibáñez', 'foo@example.com')
|
||||
encoding = signature._encoding
|
||||
self.assertEqual(encoding, 'utf-8')
|
||||
self.assertEqual(encoding, signature._encoding)
|
||||
self.assertEqual(signature.name, signature._name.decode(encoding))
|
||||
self.assertEqual(signature.name.encode(encoding), signature._name)
|
||||
self.assertTrue(abs(signature.time - time.time()) < 5)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
Loading…
x
Reference in New Issue
Block a user