Commit Graph

779 Commits (17faf6ac4f2d19a4398c0f45c395284c58f57a4d)

Author SHA1 Message Date
Isis Lovecruft 17faf6ac4f
Fix unittest run failure if pip<1.3.1.
* CHANGE Makefile test-before target to optionally include version and
   installed package information on gnupg2, pinentry, gpg-agent, and pip.
 * FIXES issue #15:
   https://github.com/isislovecruft/python-gnupg/issues/15
 * CLOSES issue #15.
2013-07-31 22:26:18 +00:00
Isis Lovecruft 8cccef433d
Remove __package__ setting and import code in test_gnupg.py.
* FIXES bug which caused py3k tests to fail to run.
2013-07-31 22:23:30 +00:00
Isis Lovecruft 08f066ddfc
Add py3k targets to Makefile: 'test', 'install', 'uninstall', 'reinstall'. 2013-07-31 12:27:00 +00:00
Isis Lovecruft 1e5c1c2311
Merge remote-tracking branch 'mmn/fixes_for_test_gpg_binary_version_str' into develop
* ADD patches from Mikael Nordfeldth.
 * FIXES #14 issues with strcmp in unittests looking for string literals when
   Python3 expects byte strings.
 * TODO: perhaps there should be a generalized function in
   gnupg/test/test_gnupg.py which automatically translates Python2 strings to
   b'' strings.
 * CLOSES issue #14.
2013-07-30 12:05:51 +00:00
Isis Lovecruft 1d22ce5adb
Merge remote-tracking branch 'mmn/file_and_io_handling_diff' into develop
* ADD patch by Mikael Nordfeldth to file python3 syntax compatibility due to
   the 'file' builtin being removed.
       isinstance(foo, file) → hasattr(foo, 'read'), or,
       file = _io._IOBase
 * CLOSES issue #13.
   https://github.com/isislovecruft/python-gnupg/pull/13
2013-07-29 20:57:25 +00:00
Isis Lovecruft 143042e2a0
Merge remote-tracking branch 'mmn/simple_indentation_error' into develop
* ADD patch by Mikael Nordfeldth.
 * FIXES wrong identation level on a unittest docstring.
 * CLOSES issue #11.
2013-07-29 19:15:13 +00:00
Isis Lovecruft 8f01040fa1
Merge branch 'fix/5-genkeyinput-default-type' into develop
* FIXES issues #5 and #11
   https://github.com/isislovecruft/python-gnupg/issues/5
   https://github.com/isislovecruft/python-gnupg/issues/11
 * ADD checks for and attribute GPG.binary_version
 * CHANGE to generating RSA keys for GnuPG 1.x, and 'default' keys for GnuPG
   2.x, because GnuPG 1.x doesn't understand the 'Key-Type: default' batch
   file directive.
2013-07-29 19:01:40 +00:00
Mikael Nordfeldth aa6ced5d14 stdout.read() wants bytes, which failed on Py3 str
I don't know how far back the b"byte string" syntax is compatible with this change in Python 2.x, but in 2.7.3 it works as it should.
2013-07-29 00:27:54 +02:00
Mikael Nordfeldth 314e670ada test_gpg_binary_version_str failed for non-English
This patch sets the environment variable LANGUGE to 'en', meaning English translation is used for outputs. The string comparisons in test_gpg_binary_version_str failed otherwise when using a non-English locale. Another choice may be to set LANG=C to avoid locales all-in-all.
2013-07-29 00:27:49 +02:00
Mikael Nordfeldth ce76fd130a Grammar fix, repeated word in test description 2013-07-29 00:27:45 +02:00
Isis Lovecruft bbeba9263e
Update TODO file with tasks done and further work needed. 2013-07-28 20:38:49 +00:00
Mikael Nordfeldth 1bdf0290ab File and IO handling in Py3 is different than Py2
Instead of checking whether data isinstance of 'file', then we check that
it is file-like _enough_ to be treated as a file (i.e. it hasattr 'read').
2013-07-28 18:35:16 +02:00
Mikael Nordfeldth 167d51f15e Simple indentation error fix 2013-07-28 18:17:52 +02:00
Isis Lovecruft 1e867d6e11
If using GnuPG v1.x, use {'Key-Type': 'RSA'} in GPG.gen_key_input().
* CHANGE default key type to RSA for older GnuPG versions, since they seems
   to not understand using a 'default' key type.
 * UPDATE docstring for GPG.gen_key_input().
2013-07-28 11:38:43 +00:00
Isis Lovecruft 6eccbe7048
Make default gen_key_input() Key-Type conditional on GnuPG version.
* ADD functions _util._match_version_string(), _util._is_gpg2(), and
   _util._is_gpg1() for determining whether to set the default Key-Type to
   'default' (for GnuPG v2.x) or to 'RSA' (for GnuPG v1.x).
 * ADD class attribute GPG.binary_version, which stores the GnuPG executable's
   version string, which should be in the form x.x.x, where 'x' is an integer.
2013-07-28 11:28:49 +00:00
Isis Lovecruft 72174ad535
Merge branch 'master' into develop 2013-07-27 21:16:45 +00:00
Isis Lovecruft 52f3dc8ca6
Merge branch 'release/1.2.1' 2013-07-27 21:15:26 +00:00
Isis Lovecruft eb668b3f00
Merge branch 'master' into develop 2013-07-27 20:49:20 +00:00
Isis Lovecruft 436506ec16
Merge branch 'release/1.2.0' 2013-07-27 20:42:59 +00:00
Isis Lovecruft 73bab0d0e0
Add scripts/pep8.py for checking PEP conformity. 2013-07-27 19:44:28 +00:00
Isis Lovecruft 420d2b590d
Remove TODO item for keyring separation in GPG.gen_key_input() and GPG.gen_key(). 2013-07-27 19:42:37 +00:00
Isis Lovecruft b54cb8ee42
Update docs/index.rst to point to online text of new license. 2013-07-27 19:37:07 +00:00
Isis Lovecruft 6b154c294e
Change LICENSE to GPLv3+, after discussion with intrigeri.
* ADD docs/change-license-emails.txt, which includes email exchanges between
   myself and intrigeri, including links to Debian and LEAP mailing lists with
   arguments for and against using AGPL for a library.
 * CHANGE license header for all files.
 * CHANGE LICENSE file and gnupg/copyright.py to use GPLv3+ text.
2013-07-27 19:27:53 +00:00
Isis Lovecruft e2646cb4c4
Merge remote-tracking branch 'mmn/python3_KeysView_object_is_not_indexable' into develop
* FIX Python3 error where a :class:`collections.OrderedDict` instance,
   including it's keys() method, is not iterable.
 * CLOSES PR#7 In Python 3 OrderedDict.keys() are not indexable
2013-07-27 17:33:53 +00:00
Isis Lovecruft bab8e4f54d
Merge remote-tracking branch 'mmn/xrange_replaces_range_in_python3' into develop
* CHANGE an occurence of xrange() iteration over a fixed length list to use
   range(); Python3's range() function is equivalent to Python2's xrange(),
   while the small fixed length of the list in this case doesn't effect speed
   at all.
2013-07-27 08:13:04 +00:00
Isis Lovecruft 8bad2f3c05
Merge remote-tracking branch 'mmn/mktime_takes_localtime_not_gmtime' into develop
* FIX struct_time inputs to time.mktime() to use localtime() not gmtime().
 * CLOSES #9: "mktime takes local time, not UTC"
   https://github.com/isislovecruft/python-gnupg/pull/9
2013-07-26 14:32:43 +00:00
Isis Lovecruft 6858fe5fa3
Merge branch 'mmn/python3_install_issue_with_chmod_and_exception_handling' into develop
* FIX exception raising and handling in _utils.py to use Python3 syntax.
 * FIX os.chmod call in _utils._make_passphrase() to use stat bitmasks.
2013-07-26 13:52:07 +00:00
Mikael Nordfeldth 9ff03b5be7 mktime takes localtime, or we skew the clocks
The following snippet shows that to create a proper timestamp, we should
feed mktime() with localtime() data rather than gmtime(), as it is locale
aware.

>>> from time import mktime, gmtime, localtime
>>> bad    = gmtime(mktime(gmtime()))
>>> good   = gmtime(mktime(localtime()))
>>> judge  = gmtime()
>>> if bad == good: "You're using UTC. Demonstration is impossible."
... elif bad == judge: "I can be wrong"
... elif good == judge: "but this shows I'm right"
...
"but this shows I'm right"

The above code checks whether gmtime() == gmtime(timestamp) from
mktime(). Obviously we don't get the same 'now' if we feed the bad value
to mktime.
2013-07-26 01:02:46 +02:00
Mikael Nordfeldth 59c19c8816 xrange is called 'range' in python3, change is python2 compatible 2013-07-25 00:18:13 +02:00
Mikael Nordfeldth f80f216625 mktime takes local time, not UTC
GPG signature timestamps are considered UTC, this may cause times to be off
by delta > 1000 in def test_signature_string_verification because it
incorrectly gave gmtime() as an argument to mktime().

Python 2 and 3 docs both say that mktime should have a struct_time argument
"which expresses the time in local time, not UTC". So the test is now using
time.localtime() instead of time.gmtime()
2013-07-24 17:28:18 +02:00
Mikael Nordfeldth a3e811a919 Python 3 fixes for chmod and exceptions 2013-07-24 15:04:15 +02:00
Mikael Nordfeldth 9015aab8ea In Python 3 OrderedDict.keys() are not indexable
We could always cast counts.keys() to a list, from the dictionary view they
are but a more efficient way of doing this is to simply pop the items from
our result list as we traverse the returned iterable dictionary view.
2013-07-24 14:58:58 +02:00
Isis Lovecruft 337b3fb1fb
Merge branch 'master' into develop 2013-07-09 09:06:40 +00:00
Isis Lovecruft 43191ab4af
Merge branch 'release/1.1.8' 2013-07-09 09:06:11 +00:00
Isis Lovecruft 73f7315808
Add symbolic link to markdown README file.
* I don't actually remember if this solves the problem where Github looks for
   a .md file and setup.py wants a README file that must actually be a hard
   file. *le sigh*.
2013-07-09 08:43:27 +00:00
Isis Lovecruft 967ae05c10
Merge branch 'testing/drebs/bug/3097-fix-bugs' into develop 2013-07-09 08:37:34 +00:00
drebs 632cb5d833 Add more recognized keys to ListPackets status handling method. 2013-07-09 08:35:42 +00:00
drebs ef022f977f Fix list_packets() call in utilities. 2013-07-09 08:35:42 +00:00
drebs 2832df8be1 Add missing param to utilities methods. 2013-07-09 08:35:42 +00:00
drebs 9db97dd184 Fix sign() and encrypt() docstrings. 2013-07-09 08:35:42 +00:00
drebs 171d3afa67 Fix delete_keys command line options. 2013-07-09 08:35:42 +00:00
Isis Lovecruft 78af852d25
Fix putting keys generated during unittests into tests/generated-keys/. 2013-07-09 08:16:27 +00:00
Isis Lovecruft fca8491ceb
Remove two unused inspect module imports from gnupg.py. 2013-07-06 09:01:21 +00:00
Isis Lovecruft 1ca57e7aa2
Merge branch 'master' into develop 2013-07-03 13:49:33 +00:00
Isis Lovecruft aa776982d3
Merge branch 'release/1.1.7' 2013-07-03 13:48:18 +00:00
Isis Lovecruft e44228bac3
Add link to docs: https://python-gnupg.readthedocs.org/en/latest/ 2013-07-03 10:29:58 +00:00
Isis Lovecruft 6ee18679e5
Merge branch 'fix/docs-1.1.6' into develop 2013-07-03 10:26:22 +00:00
Isis Lovecruft 94e591f6dc
Update docstrings for v1.1.6 Sphinx generation in gnupg.py and _parsers.py. 2013-07-03 10:24:11 +00:00
Isis Lovecruft 1da138e75b
Update Sphinx templating and stylesheets. 2013-07-03 10:22:05 +00:00
Isis Lovecruft f8ab757b46
Add generated Emacs orgmode → html output for docs/NOTES…audit.org file. 2013-07-03 10:20:41 +00:00