Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ syntax: glob
__pycache__/
*.egg-info/
dev/
build/
dist/
3 changes: 3 additions & 0 deletions .isort.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[settings]
line_length = 120

11 changes: 8 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
language: python
python:
- "2.6"
- "2.7"
- "3.4"
- "3.5"
Expand All @@ -9,5 +8,11 @@ python:
- "3.6-dev"
- "3.7-dev"
- "nightly"
install: "pip install -r requirements.txt"
script: "python setup.py test"
install:
- pip install -r requirements.txt
- pip install pycodestyle isort pylint
script:
- isort --diff --check --recursive sshpubkeys tests
- pycodestyle --ignore E501,E402 --exclude=.git,dev3 sshpubkeys tests
- pylint sshpubkeys tests --disable line-too-long --disable missing-docstring --disable no-self-use --disable fixme --disable bad-indentation --disable bad-continuation --disable invalid-name --disable too-many-locals --disable duplicate-code --disable too-many-branches
- python setup.py test
2 changes: 1 addition & 1 deletion sshpubkeys/exceptions.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# pylint:disable=line-too-long
# pylint:disable=line-too-long,too-many-ancestors

"""Exceptions for sshpubkeys."""

Expand Down
3 changes: 2 additions & 1 deletion sshpubkeys/keys.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,10 @@
import struct
import sys
import warnings

import ecdsa
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.asymmetric.dsa import DSAPublicNumbers, DSAParameterNumbers
from cryptography.hazmat.primitives.asymmetric.dsa import DSAParameterNumbers, DSAPublicNumbers
from cryptography.hazmat.primitives.asymmetric.rsa import RSAPublicNumbers

from .exceptions import * # pylint:disable=wildcard-import,unused-wildcard-import
Expand Down
11 changes: 6 additions & 5 deletions tests/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"""

import unittest
from sshpubkeys import *
from sshpubkeys import SSHKey
from .valid_keys import keys as list_of_valid_keys
from .valid_keys_rfc4716 import keys as list_of_valid_keys_rfc4716
from .invalid_keys import keys as list_of_invalid_keys
Expand All @@ -23,7 +23,7 @@ def test_none_to_constructor(self):

class TestKeys(unittest.TestCase):

def check_key(self, pubkey, bits, fingerprint_md5, fingerprint_sha256, options, comment, **kwargs):
def check_key(self, pubkey, bits, fingerprint_md5, fingerprint_sha256, options, comment, **kwargs): # pylint:disable=too-many-arguments
""" Checks valid key """
ssh = SSHKey(pubkey, **kwargs)
ssh.parse()
Expand Down Expand Up @@ -72,9 +72,9 @@ def ch(option, expected_error):

def loop_valid(keyset, prefix):
""" Loop over list of valid keys and dynamically create tests """
def ch(pubkey, bits, fingerprint_md5, fingerprint_sha256, options, comment, **kwargs):
def ch(pubkey, bits, fingerprint_md5, fingerprint_sha256, options, comment, **kwargs): # pylint:disable=too-many-arguments
return lambda self: self.check_key(pubkey, bits, fingerprint_md5, fingerprint_sha256, options, comment, **kwargs)
for i, items in enumerate(keyset):
for items in keyset:
modes = items.pop()
prefix_tmp = "%s_%s" % (prefix, items.pop())
for mode in modes:
Expand All @@ -94,7 +94,7 @@ def loop_invalid(keyset, prefix):
""" Loop over list of invalid keys and dynamically create tests """
def ch(pubkey, expected_error, **kwargs):
return lambda self: self.check_fail(pubkey, expected_error, **kwargs)
for i, items in enumerate(keyset):
for items in keyset:
modes = items.pop()
prefix_tmp = "%s_%s" % (prefix, items.pop())
for mode in modes:
Expand All @@ -105,6 +105,7 @@ def ch(pubkey, expected_error, **kwargs):
pubkey, expected_error = items
setattr(TestKeys, "test_%s_mode_%s" % (prefix_tmp, mode), ch(pubkey, expected_error, **kwargs))


loop_valid(list_of_valid_keys, "valid_key")
loop_valid(list_of_valid_keys_rfc4716, "valid_key_rfc4716")
loop_invalid(list_of_invalid_keys, "invalid_key")
Expand Down
5 changes: 3 additions & 2 deletions tests/invalid_keys.py

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion tests/invalid_options.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
from sshpubkeys.exceptions import InvalidOptionsError, UnknownOptionNameError, InvalidOptionNameError, MissingMandatoryOptionValueError
from sshpubkeys.exceptions import (InvalidOptionNameError, InvalidOptionsError, MissingMandatoryOptionValueError,
UnknownOptionNameError)

options = [
["includes_space", "no-user-rc ", InvalidOptionsError],
["includes_space_multiple", "no-user-rc, port-forwarding", InvalidOptionsError],
Expand Down
2 changes: 1 addition & 1 deletion tests/test_dsa_keys_failing.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from sshpubkeys.exceptions import *
from sshpubkeys.exceptions import MalformedDataError

keys = [
["ssh-dss AAAAB3NzaC1kc3MAAACBAPlHIP5sD+T8/Sx1DGEiCzCXqpl7ww40jBg7wTkxu44OH6pNog5PjJt5M4NBULhKva/i+bhIM3ba+H1Or+aHWWFHACV6W2FCGk/k37ApRF8sIa4hsnN0P9qn6VfhbJKee+DBxa21WjjY/MZiljmJz7IQHx5RTxX9I/hJ7cL+aNmrAAAAFQCKteqc4IkgIrjpcpStsxYAhb3MqQAAAIEA+SfIKuTr7QPcinsZQDdmZOXqcg+u9TLzHA4c47y0Kns3T3BVPr9rWdmuh6eImzLO4wMLxLvcg3ecrqFuiCp1IHvXENkGlpB17S+uOXlVDY+sTdXyvYKRKirg5IZefIAP/m08c0QGkhFDbo4ysr9D5gXgH3LB2rMPIAbvMWm/HZQAAACBAKWtAE3hXRQX5KtI4AoIWVTly/6T4JNBt4u24ZRqV7X//CZEZ0cS5YpR/frlpUDI3WKoMtS+VmT3cBFZINashIxZyfBF8+0UX3s34HwNfp0hDW3ZdgZJU56GC2eclMantYGeVrMxgTQd80pxZFgByEhoXGeZaAwUzN8ULo9jHQo=", MalformedDataError, "too_short_data"],
Expand Down