Commit Graph

195 Commits (testing/mmn/python3_KeysView_object_is_not_indexable)

Author SHA1 Message Date
Mikael Nordfeldth 40ea858676 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-27 16:35:16 +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
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
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 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 d199a7512e
Start Pythonising the Makefile test cleanup actions. 2013-07-02 09:36:48 +00:00
Isis Lovecruft 1a38d786a3
Fix unittest import_with_colons to use key dict. 2013-07-02 09:14:56 +00:00
Isis Lovecruft b3decd7b73
Add imports specific to running unittests after an installation. 2013-07-02 09:13:58 +00:00
Isis Lovecruft ab54c7b71e
Make detached binary sig unittest test what it's supposed to. 2013-07-02 07:17:51 +00:00
Isis Lovecruft 0ca6352457
Add check on recv-key size after writing it to a file. 2013-07-02 07:15:31 +00:00
Isis Lovecruft db4826f815
Fix an error in a unittest due to attempt to write class obj, not str form. 2013-07-02 07:14:48 +00:00
Isis Lovecruft ea8c2c5e1f
Ugh. Change the unittest paths again. 2013-07-02 07:14:21 +00:00
Isis Lovecruft f2cfd3f04b
Merge branch 'develop' into feature/module-layout
Conflicts:
	gnupg/_parsers.py
2013-07-02 01:26:35 +00:00
Isis Lovecruft e8062c95aa
Fix variable names in unittest: pubring→keyring. 2013-07-02 00:55:53 +00:00
Isis Lovecruft e18e10edd1
Add a debug statement to a unittest when we've downloaded a key. 2013-07-02 00:55:26 +00:00
Isis Lovecruft 3b7457ae74
Remove a print statement from a unittest. 2013-07-02 00:43:54 +00:00
Isis Lovecruft 6cf7640c5c
Fix whitespace formatting for a line in gnupg/tests/test_gnupg.py. 2013-07-02 00:43:12 +00:00
Isis Lovecruft 12b1de719a
Update paths in unittests to disregard the installed directory. 2013-07-02 00:42:17 +00:00
Isis Lovecruft d7a0ffb395
Move tests/* → gnupg/test/* 2013-06-28 13:13:27 +00:00
Isis Lovecruft f11ea6901c
Set gpg.temp_[key|sec]ring to None after setting key.[key|sec]ring.
* Change the returned _parsers.GenKey from gnupg.GPG.gen_key() to store the
   location of the renamed temporary keyrings as attributes. This way, one can
   do something like:

   >>> key = gpg.gen_key(key_input)
   >>> key.keyring
   './generated-keys/328A5C6C1B2F0891125ECBE4624276B5A2296478.pubring.gpg'
2013-06-28 07:09:35 +00:00
Isis Lovecruft 8232f14f2a
Remove commented out code from GPG.gen_key() for import after generation.
* Generated keys in separate keyring would not be available after switching
   back to the normal keyrings (not the ones set up for key generation), so at
   first in the unittests I imported them back into the main keyrings… this,
   however, is would be stupid, as in nullifies half the reasons for using
   separate keyrings in the first place, thus the code was commented out. Now
   that the temporary keyrings are placed in the gnupg.GPG._generated_keys
   directory, it would be nice to eventually either extend GPG.import_keys()
   or add a new helper function for doing:

       $ gpg --no-default-keyring --keyring pubring.gpg \
            --keyring ./generated-keys/<some_fingerprint>.gpg
2013-06-28 06:44:52 +00:00
Isis Lovecruft 9008faa0db
Fix a misnamed variable in gnupg.py; self._key_dir→self._keys_dir 2013-06-28 06:42:42 +00:00
Isis Lovecruft 603379eb37
Change _copy_data() error handling to explain errors not due to broken pipes. 2013-06-28 06:40:09 +00:00
Isis Lovecruft 328e8fcbe0
Add a 'generated-keys' subdirectory to gnupg.GPG.homedir.
* Add GPG._generated_keys as an _utils.InheritableProperty class for storing
   a configurable (even by subclasses of GPGBase, without property overrides)
   subdirectory of whichever directory gnupg.GPG.homedir is set to. This
   subdirectory can be used via the 'separate_keyring=True' option to
   gnupg.GPG.gen_key_input(), which will switch temporarily to new pubring.gpg
   and secring.gpg keyrings during key creation, and upon finishing creation
   of the new key, will ask for the new key's fingerprint, and move the
   keyrings into this GPG._generated_keys directory, renamed in the format
   "<GPG.homedir>/<GPG._generated_keys>/<fingerprint>.[pub|sec]ring.gpg".
2013-06-28 06:29:38 +00:00
Isis Lovecruft 9d5cdb8854
Fix upstream issue #62, handle expired keys.
* see https://code.google.com/p/python-gnupg/issues/detail?id=62
2013-06-28 02:31:37 +00:00
Isis Lovecruft d129ed5b17
Add _parsers.GenKey.secring and _parsers.GenKey.keyring attributes and docs. 2013-06-28 02:30:57 +00:00
Isis Lovecruft f996bf9e31
Update _parsers._sanitise_list() documentation. 2013-06-28 02:30:20 +00:00
Isis Lovecruft 4fcfef1bde
Add _parsers._is_string() function, and change _sanitise() to use it. 2013-06-28 02:29:36 +00:00
Isis Lovecruft 4871e9e038
Move allowed_options into separate groups in their own functions. 2013-06-28 02:28:29 +00:00
Isis Lovecruft 9b9e441dd7
Update function docs for _parsers._is_allowed() function. 2013-06-28 01:44:04 +00:00
Isis Lovecruft 1e03011296
Remove unnecessary comment, there is now a unittest for this condition. 2013-06-28 01:42:05 +00:00
Isis Lovecruft e1139c7e37
Remove commented out code from _util._copy_data(). 2013-06-09 08:36:22 +00:00
Isis Lovecruft bcaa26685b
Change several imports for installed modules to be absolute in _meta.py. 2013-06-09 08:35:17 +00:00
Isis Lovecruft a707a50c31
Update test directory shortcut in gnupg/_logger.py. 2013-06-09 08:34:15 +00:00
Isis Lovecruft ceb38fdefe
Change directory shortcuts in gnupg._util.py module. 2013-06-09 08:33:30 +00:00
Isis Lovecruft 1afcda8364
Fix a misnamed process thread variable. 2013-06-09 08:25:34 +00:00
Isis Lovecruft 295d98fbdc
GPG.encrypt_file()→GPGBase.encrypt() and fix doctests and documentation. 2013-06-04 01:42:07 +00:00
Isis Lovecruft 785b2760bb
Move GPG._sign_file() to GPGBase since it's never called directly. 2013-06-03 21:34:39 +00:00
Isis Lovecruft 042d52a75f
Move source files to directory named for top-level package. 2013-06-03 21:16:19 +00:00
Isis Lovecruft c97b51fec5
Add versioneer and restructure the repo into a src/ dir. 2013-05-12 09:32:46 +00:00