Git Product home page Git Product logo

pyu2f's Introduction

pyu2f

Build Status

pyu2f is a python based U2F host library for Linux, Windows, and MacOS. It provides functionality for interacting with a U2F device over USB.

Features

pyu2f uses ctypes to make system calls directly to interface with the USB HID device. This means that no platform specific shared libraries need to be compiled for pyu2f to work.

By default pyu2f will use its own U2F stack implementation to sign requests. If desired, pyu2f can offload signing to a pluggable command line tool. Offloading is not yet supported for U2F registration.

Usage

The recommended approach for U2F signing (authentication) is through the convenience interface:

from pyu2f import model
from pyu2f.convenience import authenticator

...

registered_key = model.RegisteredKey(b64_encoded_key)
challenge_data = [{'key': registered_key, 'challenge': raw_challenge_data}]

api = authenticator.CreateCompositeAuthenticator(origin)
response = api.Authenticate(app_id, challenge_data)

See baseauthenticator.py for interface details.

Authentication Plugin

The convenience interface allows for a pluggable authenticator to be defined and used instead of the built in U2F stack.

This can be done by setting the SK_SIGNING_PLUGIN environment variable to the plugin tool. The plugin tool should follow the specification detailed in customauthenticator.py

If SK_SIGNING_PLUGIN is set, the convenience layer will invoke the signing plugin whenver Authenticate() is called.

pyu2f's People

Contributors

anukaal avatar cherba29 avatar felixonmars avatar gdasher avatar houglum avatar ikimonogakari avatar jiangk avatar leshi avatar mdu42 avatar postmasters avatar svalentin avatar tirkarthi avatar xhochy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pyu2f's Issues

HID devices enumeration in Win10 OS throw an exception.

HID devices enumeration result in an error thrown in FillDeviceAttributes. Calling HidD_GetProductString(device, buf, 1024) returns False.
It seems that the root cause depends on HID devices connected on the laptop.

When adding some trace to the lib, HidD_GetProductString returns False
for device 1/78 (VendorId/ProductId) which correspond according to the win registry to
my integrated wireless radio controls. I doesn't have other win10 laptop to test on but I am pretty sure that other devices of that kind may also make the HidD_GetProductString to return False.

win registry extract:

(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\HID\HIDCLASS\1&2d595ca7&0&0000)
DeviceDesc : "@input.inf,%hid_wireless_radio_controls%;HID-compliant wireless radio controls"
HardwareID : "HID\lnv0078
HID\VID_0001&UP:0001_U:000C
HID_DEVICE_UP:0001_U:000C
HID_DEVICE"

dump of hid devices list:

[
{
	'path': b'\\\\?\\hid#hidclass#1&2d595ca7&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\x00', 
	'vendor_id': 1, 
	'product_id': 78, 
	'product_string': '', 
	'usage': 12, 
	'usage_page': 1
}, 
{
	'path': b'\\\\?\\hid#vid_096e&pid_0850#6&292222fe&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\x00', 
	'vendor_id': 2414, 
	'product_id': 2128, 
	'product_string': 'ePass FIDO', 
	'usage': 1, 
	'usage_page': 61904
}
]

stack trace :

line 517, in _check_u2f_result
  File "C:\Users\xx\AppData\Local\Programs\Python\Python36\lib\site-packages\pyu2f-0.1.4-py3.6.egg\pyu2f\convenience\authenticator.py", line 46, in Authenticate
  File "C:\Users\xx\AppData\Local\Programs\Python\Python36\lib\site-packages\pyu2f-0.1.4-py3.6.egg\pyu2f\convenience\localauthenticator.py", line 36, in Authenticate
  File "C:\Users\xx\AppData\Local\Programs\Python\Python36\lib\site-packages\pyu2f-0.1.4-py3.6.egg\pyu2f\u2f.py", line 36, in GetLocalU2FInterface
  File "C:\Users\xx\AppData\Local\Programs\Python\Python36\lib\site-packages\pyu2f-0.1.4-py3.6.egg\pyu2f\hidtransport.py", line 36, in DiscoverLocalHIDU2FDevices
  File "C:\Users\xx\AppData\Local\Programs\Python\Python36\lib\site-packages\pyu2f-0.1.4-py3.6.egg\pyu2f\hid\__init__.py", line 24, in Enumerate
  File "C:\Users\xx\AppData\Local\Programs\Python\Python36\lib\site-packages\pyu2f-0.1.4-py3.6.egg\pyu2f\hid\__init__.py", line 50, in InternalPlatformSwitch
  File "C:\Users\xx\AppData\Local\Programs\Python\Python36\lib\site-packages\pyu2f-0.1.4-py3.6.egg\pyu2f\hid\windows.py", line 311, in Enumerate
  File "C:\Users\xx\AppData\Local\Programs\Python\Python36\lib\site-packages\pyu2f-0.1.4-py3.6.egg\pyu2f\hid\windows.py", line 174, in FillDeviceAttributes
OSError: [WinError 50] Cette demande n’est pas prise en charge.

Workarround :
Removing returns checks for HidD_GetProductString() call line 173,174 will make enumeration work properly.
Not sure it is sustainable solution though.

unittest2 requirement seems unused

setup.py has unittest2>=0.5.1 in its test_requires but it doesn't seem to use it - I can only find imports for unittest, not unittest2.
Am I overlooking something?

Test failures with pyfakefs 5.0

FAILED pyu2f/tests/hid/linux_test.py::LinuxTest::testCallEnumerate - AttributeError: 'FakeFilesystem' object has no attribute 'CreateDirectory'
FAILED pyu2f/tests/hid/linux_test.py::LinuxTest::testCallOpen - AttributeError: 'FakeFilesystem' object has no attribute 'CreateDirectory'

six usage

Given you do not support python 2 anymore, do you think six dependency could be dropped?

Version 0.1.3 crashes if security key is needed but not found

I've been adding reauth support to gsutil, and found this failure when running our release tests:

Example failure, using version 0.1.3 with the google-reauth-python package (0.1.0) -- see the last couple of lines of this stack trace:

Please insert your security key and press enter...DEBUG: Exception stack trace:
    Traceback (most recent call last):
      File "C:\path-to-gsutil\gsutil\gslib\__main__.py", line 576, in _RunNamedCommandAndHandleException
s
        user_project=user_project)
      File "C:\path-to-gsutil\gsutil\gslib\command_runner.py", line 318, in RunNamedCommand
        return_code = command_inst.RunCommand()
      File "C:\path-to-gsutil\gsutil\gslib\commands\ls.py", line 517, in RunCommand
        bucket_fields=bucket_fields):
      File "C:\path-to-gsutil\gsutil\gslib\wildcard_iterator.py", line 456, in IterBuckets
        for blr in self._ExpandBucketWildcards(bucket_fields=bucket_fields):
      File "C:\path-to-gsutil\gsutil\gslib\wildcard_iterator.py", line 375, in _ExpandBucketWildcards
        provider=self.wildcard_url.scheme):
      File "C:\path-to-gsutil\gsutil\gslib\boto_translation.py", line 232, in ListBuckets
        buckets_iter = provider_uri.get_all_buckets(headers=headers)
      File "C:\path-to-gsutil\gsutil\third_party\boto\boto\storage_uri.py", line 585, in get_all_buckets

        return conn.get_all_buckets(headers)
      File "C:\path-to-gsutil\gsutil\third_party\boto\boto\s3\connection.py", line 443, in get_all_bucke
ts
        response = self.make_request('GET', headers=headers)
      File "C:\path-to-gsutil\gsutil\third_party\boto\boto\s3\connection.py", line 671, in make_request
        retry_handler=retry_handler
      File "C:\path-to-gsutil\gsutil\third_party\boto\boto\connection.py", line 1071, in make_request
        retry_handler=retry_handler)
      File "C:\path-to-gsutil\gsutil\third_party\boto\boto\connection.py", line 927, in _mexe
        request.authorize(connection=self)
      File "C:\path-to-gsutil\gsutil\third_party\boto\boto\connection.py", line 377, in authorize
        connection._auth_handler.add_auth(self, **kwargs)
      File "C:\path-to-gsutil\gsutil\third_party\gcs-oauth2-boto-plugin\gcs_oauth2_boto_plugin\oauth2_pl
ugin.py", line 44, in add_auth
        self.oauth2_client.GetAuthorizationHeader())
      File "C:\path-to-gsutil\gsutil\third_party\gcs-oauth2-boto-plugin\gcs_oauth2_boto_plugin\oauth2_cl
ient.py", line 366, in GetAuthorizationHeader
        return 'Bearer %s' % self.GetAccessToken().token
      File "C:\path-to-gsutil\gsutil\third_party\gcs-oauth2-boto-plugin\gcs_oauth2_boto_plugin\oauth2_cl
ient.py", line 332, in GetAccessToken
        access_token = self.FetchAccessToken(rapt_token=rapt)
      File "C:\path-to-gsutil\gsutil\third_party\retry-decorator\retry_decorator\retry_decorator.py", li
ne 20, in f_retry
        return f(*args, **kwargs)
      File "C:\path-to-gsutil\gsutil\third_party\gcs-oauth2-boto-plugin\gcs_oauth2_boto_plugin\oauth2_cl
ient.py", line 622, in FetchAccessToken
        credentials.refresh(http)
      File "C:\path-to-gsutil\gsutil\third_party\oauth2client\oauth2client\client.py", line 545, in refr
esh
        self._refresh(http)
      File "C:\path-to-gsutil\gsutil\third_party\oauth2client\oauth2client\client.py", line 749, in _ref
resh
        self._do_refresh_request(http)
      File "C:\path-to-gsutil\gsutil\third_party\google-reauth-python\google_reauth\reauth_creds.py", li
ne 120, in _do_refresh_request
        headers=headers))
      File "C:\path-to-gsutil\gsutil\third_party\google-reauth-python\google_reauth\reauth.py", line 284
, in refresh_access_token
        scopes=scopes,
      File "C:\path-to-gsutil\gsutil\third_party\google-reauth-python\google_reauth\reauth.py", line 192
, in get_rapt_token
        requested_scopes=scopes)
      File "C:\path-to-gsutil\gsutil\third_party\google-reauth-python\google_reauth\reauth.py", line 139
, in _obtain_rapt
        msg = _run_next_challenge(msg, http_request, access_token)
      File "C:\path-to-gsutil\gsutil\third_party\google-reauth-python\google_reauth\reauth.py", line 88,
 in _run_next_challenge
        client_input = c.obtain_challenge_input(challenge)
      File "C:\path-to-gsutil\gsutil\third_party\google-reauth-python\google_reauth\challenges.py", line
 111, in obtain_challenge_input
        print_callback=sys.stderr.write)
      File "C:\path-to-gsutil\gsutil\third_party\pyu2f\pyu2f\convenience\authenticator.py", line 46, in
Authenticate
        print_callback)
      File "C:\path-to-gsutil\gsutil\third_party\pyu2f\pyu2f\convenience\localauthenticator.py", line 39
, in Authenticate
        six.input()
    AttributeError: 'module' object has no attribute 'input'

'module' object has no attribute 'input'

0.1.5: pytest is failing in two units and missing `IOHIDDeviceRegisterInputReportCallback` symbol

I'm packaging your module as an rpm package so I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.

  • python3 -sBm build -w --no-isolation
  • because I'm calling build with --no-isolation I'm using during all processes only locally installed modules
  • install .whl file in </install/prefix>
  • run pytest with $PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>
  • build is performed in env which is cut off from access to the public network (pytest is executed with -m "not network")

Pytest shows as well many warnings.
Here is pytest output:

+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-pyu2f-0.1.5-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-pyu2f-0.1.5-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra -m 'not network'
==================================================================================== test session starts ====================================================================================
platform linux -- Python 3.8.16, pytest-7.2.2, pluggy-1.0.0
rootdir: /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5
plugins: pyfakefs-5.1.0
collected 63 items

pyu2f/tests/apdu_test.py .........                                                                                                                                                    [ 14%]
pyu2f/tests/customauthenticator_test.py .......                                                                                                                                       [ 25%]
pyu2f/tests/hardware_test.py ...........                                                                                                                                              [ 42%]
pyu2f/tests/hidtransport_test.py ..........                                                                                                                                           [ 58%]
pyu2f/tests/localauthenticator_test.py ...                                                                                                                                            [ 63%]
pyu2f/tests/model_test.py ...                                                                                                                                                         [ 68%]
pyu2f/tests/u2f_test.py ...........                                                                                                                                                   [ 85%]
pyu2f/tests/util_test.py ...                                                                                                                                                          [ 90%]
pyu2f/tests/hid/linux_test.py FF                                                                                                                                                      [ 93%]
pyu2f/tests/hid/macos_test.py ....                                                                                                                                                    [100%]

========================================================================================= FAILURES ==========================================================================================
________________________________________________________________________________ LinuxTest.testCallEnumerate ________________________________________________________________________________

self = <linux_test.LinuxTest testMethod=testCallEnumerate>

    def setUp(self):
      self.fs = fake_filesystem.FakeFilesystem()
>     self.fs.CreateDirectory('/sys/class/hidraw')
E     AttributeError: 'FakeFilesystem' object has no attribute 'CreateDirectory'

pyu2f/tests/hid/linux_test.py:82: AttributeError
__________________________________________________________________________________ LinuxTest.testCallOpen ___________________________________________________________________________________

self = <linux_test.LinuxTest testMethod=testCallOpen>

    def setUp(self):
      self.fs = fake_filesystem.FakeFilesystem()
>     self.fs.CreateDirectory('/sys/class/hidraw')
E     AttributeError: 'FakeFilesystem' object has no attribute 'CreateDirectory'

pyu2f/tests/hid/linux_test.py:82: AttributeError
===================================================================================== warnings summary ======================================================================================
pyu2f/hid/macos.py:177
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/hid/macos.py:177: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
    logger.warn('Not running on MacOS')

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testPluginReturnsTouchRequired
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:326: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.code, errors.U2FError.TIMEOUT)

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testPluginReturnsWrongData
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:372: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.code, errors.U2FError.DEVICE_INELIGIBLE)

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:125: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(communicate_args), 1,

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:132: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(communicate_json), communicate_json_len,

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:137: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(communicate_dict.get('type'), 'sign_helper_request')

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:138: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(communicate_dict.get('timeoutSeconds'), 5)

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:139: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(communicate_dict.get('localAlways'), True)

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:144: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(challenges), 1)

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:146: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(challenge.get('appIdHash'),

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:148: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(challenge.get('challengeHash'),

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:150: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(challenge.get('keyHandle'),

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:152: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(challenge.get('version'),

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:158: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(result['applicationId'], SIGN_SUCCESS['app_id'])

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:159: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(result['clientData'], SIGN_SUCCESS['client_data_encoded'])

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:160: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(result['keyHandle'], SIGN_SUCCESS['key_handle_encoded'])

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:161: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(result['signatureData'],

pyu2f/tests/hardware_test.py::HardwareTest::testAuthenticateCheckOnly
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:160: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(reply, bytearray([0x01, 0x02]))

pyu2f/tests/hardware_test.py::HardwareTest::testAuthenticateCheckOnly
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:161: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)

pyu2f/tests/hardware_test.py::HardwareTest::testAuthenticateCheckOnly
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:163: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(sent_msg[0:4], bytearray([0x00, 0x02, 0x07, 0x00]))

pyu2f/tests/hardware_test.py::HardwareTest::testAuthenticateCheckOnly
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:164: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(

pyu2f/tests/hardware_test.py::HardwareTest::testAuthenticateInvalidKeyHandle
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:194: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)

pyu2f/tests/hardware_test.py::HardwareTest::testAuthenticateSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:137: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(reply, bytearray([0x01, 0x02]))

pyu2f/tests/hardware_test.py::HardwareTest::testAuthenticateSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:138: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)

pyu2f/tests/hardware_test.py::HardwareTest::testAuthenticateSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:140: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(sent_msg[0:4], bytearray([0x00, 0x02, 0x03, 0x00]))

pyu2f/tests/hardware_test.py::HardwareTest::testAuthenticateSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:141: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(

pyu2f/tests/hardware_test.py::HardwareTest::testAuthenticateTUPRequired
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:180: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)

pyu2f/tests/hardware_test.py::HardwareTest::testRegisterSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:63: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(reply, bytearray([0x01, 0x02]))

pyu2f/tests/hardware_test.py::HardwareTest::testRegisterSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:64: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)

pyu2f/tests/hardware_test.py::HardwareTest::testRegisterSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:66: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(sent_msg[0:4], bytearray([0x00, 0x01, 0x03, 0x00]))

pyu2f/tests/hardware_test.py::HardwareTest::testRegisterSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:67: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(sent_msg[7:-2], bytearray(challenge_param + app_param))

pyu2f/tests/hardware_test.py::HardwareTest::testRegisterTUPRequired
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:80: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)

pyu2f/tests/hardware_test.py::HardwareTest::testVersion
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:89: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(reply, bytearray(b'U2F_V2'))

pyu2f/tests/hardware_test.py::HardwareTest::testVersion
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:90: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)

pyu2f/tests/hardware_test.py::HardwareTest::testVersion
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:92: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(sent_msg, bytearray(

pyu2f/tests/hardware_test.py::HardwareTest::testVersionErrors
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:123: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)

pyu2f/tests/hardware_test.py::HardwareTest::testVersionFallback
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:104: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(reply, bytearray(b'U2F_V2'))

pyu2f/tests/hardware_test.py::HardwareTest::testVersionFallback
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:105: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_transport.SendMsgBytes.call_count, 2)

pyu2f/tests/hardware_test.py::HardwareTest::testVersionFallback
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:107: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(sent_msg), 7)

pyu2f/tests/hardware_test.py::HardwareTest::testVersionFallback
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:108: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(sent_msg[0:4], bytearray([0x00, 0x03, 0x00, 0x00]))

pyu2f/tests/hardware_test.py::HardwareTest::testVersionFallback
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:109: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(sent_msg[4:7], bytearray([0x00, 0x00, 0x00]))  # Le

pyu2f/tests/hardware_test.py::HardwareTest::testVersionFallback
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:111: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(sent_msg), 9)

pyu2f/tests/hardware_test.py::HardwareTest::testVersionFallback
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:112: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(sent_msg[0:4], bytearray([0x00, 0x03, 0x00, 0x00]))

pyu2f/tests/hardware_test.py::HardwareTest::testVersionFallback
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:113: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(sent_msg[4:7], bytearray([0x00, 0x00, 0x00]))  # Lc

pyu2f/tests/hardware_test.py::HardwareTest::testVersionFallback
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:114: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(sent_msg[7:9], bytearray([0x00, 0x00]))  # Le

pyu2f/tests/hidtransport_test.py::DiscoveryTest::testDiscoverLocalDevices
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:92: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(hid_mock.Enumerate.call_count, 1)

pyu2f/tests/hidtransport_test.py::DiscoveryTest::testDiscoverLocalDevices
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:93: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(hid_mock.Open.call_count, 2)

pyu2f/tests/hidtransport_test.py::DiscoveryTest::testDiscoverLocalDevices
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:94: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(devs), 2)

pyu2f/tests/hidtransport_test.py::DiscoveryTest::testDiscoverLocalDevices
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:96: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(devs[0].hid_device.path, 'path3')

pyu2f/tests/hidtransport_test.py::DiscoveryTest::testDiscoverLocalDevices
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:97: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(devs[1].hid_device.path, 'path4')

pyu2f/tests/hidtransport_test.py::TransportTest::testContPacketShape
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:177: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(packet.ToWireFormat(), RPad([0, 0, 0, 1, 5, 1, 2], 64))

pyu2f/tests/hidtransport_test.py::TransportTest::testContPacketShape
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:181: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(copy.cid, bytearray(b'\x00\x00\x00\x01'))

pyu2f/tests/hidtransport_test.py::TransportTest::testContPacketShape
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:182: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(copy.seq, 5)

pyu2f/tests/hidtransport_test.py::TransportTest::testContPacketShape
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:183: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(copy.payload, RPad(bytearray(b'\x01\x02'), 59))

pyu2f/tests/hidtransport_test.py::TransportTest::testFragmentedResponseMsg
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:145: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(reply, bytearray(x % 256 for x in range(0, 1000)))

pyu2f/tests/hidtransport_test.py::TransportTest::testFragmentedSendApdu
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:154: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(reply, bytearray([0x90, 0x00]))

pyu2f/tests/hidtransport_test.py::TransportTest::testFragmentedSendApdu
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:157: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(fake_hid_dev.received_packets), 18)

pyu2f/tests/hidtransport_test.py::TransportTest::testInit
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:105: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(t.cid, bytearray([0x00, 0x00, 0x00, 0x01]))

pyu2f/tests/hidtransport_test.py::TransportTest::testInit
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:106: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(t.u2fhid_version, 0x01)

pyu2f/tests/hidtransport_test.py::TransportTest::testInitPacketShape
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:163: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(packet.ToWireFormat(), RPad(

pyu2f/tests/hidtransport_test.py::TransportTest::testInitPacketShape
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:168: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(copy.cid, bytearray(b'\x00\x00\x00\x01'))

pyu2f/tests/hidtransport_test.py::TransportTest::testInitPacketShape
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:169: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(copy.cmd, 0x83)

pyu2f/tests/hidtransport_test.py::TransportTest::testInitPacketShape
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:170: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(copy.size, 2)

pyu2f/tests/hidtransport_test.py::TransportTest::testInitPacketShape
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:171: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(copy.payload, bytearray(b'\x01\x02'))

pyu2f/tests/hidtransport_test.py::TransportTest::testMsg
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:121: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(reply, bytearray([0x01, 0x90, 0x00]))

pyu2f/tests/hidtransport_test.py::TransportTest::testMsgBusy
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:132: DeprecationWarning: Please use assertRaisesRegex instead.
    self.assertRaisesRegexp(errors.HidError, '^Device Busy', t.SendMsgBytes,

pyu2f/tests/hidtransport_test.py::TransportTest::testMsgBusy
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:136: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(reply, bytearray([0x01, 0x90, 0x00]))

pyu2f/tests/hidtransport_test.py::TransportTest::testPing
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:113: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(reply, b'1234')

pyu2f/tests/localauthenticator_test.py::LocalAuthenticatorTest::testSignMultipleIneligible
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/localauthenticator_test.py:128: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.code, errors.U2FError.DEVICE_INELIGIBLE)

pyu2f/tests/localauthenticator_test.py::LocalAuthenticatorTest::testSignMultipleSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/localauthenticator_test.py:171: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(response.get('clientData'),

pyu2f/tests/localauthenticator_test.py::LocalAuthenticatorTest::testSignMultipleSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/localauthenticator_test.py:173: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(response.get('signatureData'),

pyu2f/tests/localauthenticator_test.py::LocalAuthenticatorTest::testSignMultipleSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/localauthenticator_test.py:175: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(response.get('applicationId'),

pyu2f/tests/localauthenticator_test.py::LocalAuthenticatorTest::testSignMultipleSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/localauthenticator_test.py:177: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(response.get('keyHandle'),

pyu2f/tests/localauthenticator_test.py::LocalAuthenticatorTest::testSignSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/localauthenticator_test.py:95: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(response.get('clientData'),

pyu2f/tests/localauthenticator_test.py::LocalAuthenticatorTest::testSignSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/localauthenticator_test.py:97: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(response.get('signatureData'),

pyu2f/tests/localauthenticator_test.py::LocalAuthenticatorTest::testSignSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/localauthenticator_test.py:99: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(response.get('applicationId'),

pyu2f/tests/localauthenticator_test.py::LocalAuthenticatorTest::testSignSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/localauthenticator_test.py:101: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(response.get('keyHandle'),

pyu2f/tests/model_test.py::ModelTest::testClientDataAuth
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/model_test.py:44: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(list(obj.keys())), 3)

pyu2f/tests/model_test.py::ModelTest::testClientDataAuth
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/model_test.py:45: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(obj['typ'], model.ClientData.TYP_AUTHENTICATION)

pyu2f/tests/model_test.py::ModelTest::testClientDataAuth
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/model_test.py:46: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(obj['challenge'], 'QUJDRA')

pyu2f/tests/model_test.py::ModelTest::testClientDataAuth
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/model_test.py:47: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(obj['origin'], 'somemachine')

pyu2f/tests/model_test.py::ModelTest::testClientDataRegistration
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/model_test.py:35: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(list(obj.keys())), 3)

pyu2f/tests/model_test.py::ModelTest::testClientDataRegistration
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/model_test.py:36: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(obj['typ'], model.ClientData.TYP_REGISTRATION)

pyu2f/tests/model_test.py::ModelTest::testClientDataRegistration
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/model_test.py:37: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(obj['challenge'], 'QUJDRA')

pyu2f/tests/model_test.py::ModelTest::testClientDataRegistration
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/model_test.py:38: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(obj['origin'], 'somemachine')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateAllKeysInvalid
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:190: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.code, errors.U2FError.DEVICE_INELIGIBLE)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateError
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:202: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.code, errors.U2FError.BAD_REQUEST)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateError
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:203: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.cause.sw1, 0xff)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateError
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:204: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.cause.sw2, 0xff)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateError
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:206: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdAuthenticate.call_count, 1)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateError
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:207: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdWink.call_count, 0)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidKey
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:140: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdAuthenticate.call_count, 2)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidKey
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:141: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdWink.call_count, 0)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidKey
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:142: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.key_handle, 'khB')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidKey
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:143: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.client_data.raw_server_challenge, b'ABCD')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidKey
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:144: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.client_data.typ, 'navigator.id.getAssertion')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidKey
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:145: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.signature_data, 'signature')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidVersion
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:159: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdAuthenticate.call_count, 1)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidVersion
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:160: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdWink.call_count, 0)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidVersion
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:161: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.key_handle, 'khB')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidVersion
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:162: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.client_data.raw_server_challenge, b'ABCD')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidVersion
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:163: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.client_data.typ, 'navigator.id.getAssertion')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidVersion
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:164: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.signature_data, 'signature')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:122: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdAuthenticate.call_count, 2)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:123: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdWink.call_count, 1)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:124: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.key_handle, 'khA')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:125: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.client_data.raw_server_challenge, b'ABCD')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:126: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.client_data.typ, 'navigator.id.getAssertion')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:127: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.signature_data, 'signature')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateTimeout
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:176: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.code, errors.U2FError.TIMEOUT)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateTimeout
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:177: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdAuthenticate.call_count, 30)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateTimeout
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:178: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdWink.call_count, 30)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterError
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:106: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.code, errors.U2FError.BAD_REQUEST)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterError
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:107: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.cause.sw1, 0xff)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterError
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:108: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.cause.sw2, 0xff)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterError
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:110: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdRegister.call_count, 1)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterError
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:111: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdWink.call_count, 0)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterFailAlreadyRegistered
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:75: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.code, errors.U2FError.DEVICE_INELIGIBLE)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterFailAlreadyRegistered
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:77: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdAuthenticate.call_count, 1)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterFailAlreadyRegistered
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:81: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdRegister.call_count, 0)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterFailAlreadyRegistered
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:82: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdWink.call_count, 0)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithPreviousKeys
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:56: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdAuthenticate.call_count, 1)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithPreviousKeys
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:60: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdRegister.call_count, 2)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithPreviousKeys
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:61: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdWink.call_count, 1)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithPreviousKeys
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:62: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.client_data.raw_server_challenge, b'ABCD')

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithPreviousKeys
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:63: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.client_data.typ, 'navigator.id.finishEnrollment')

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithPreviousKeys
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:64: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.registration_data, 'regdata')

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:41: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdRegister.call_count, 2)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:42: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdWink.call_count, 1)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:43: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.client_data.raw_server_challenge, b'ABCD')

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:44: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.client_data.typ, 'navigator.id.finishEnrollment')

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:45: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.registration_data, 'regdata')

pyu2f/tests/u2f_test.py::U2fTest::testRegisterTimeout
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:94: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.code, errors.U2FError.TIMEOUT)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterTimeout
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:95: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdRegister.call_count, 30)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterTimeout
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:96: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdWink.call_count, 30)

pyu2f/tests/util_test.py::UtilTest::testErrorBusy
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/util_test.py:41: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(

pyu2f/tests/util_test.py::UtilTest::testErrorBusy
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/util_test.py:44: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(

pyu2f/tests/util_test.py::UtilTest::testErrorBusy
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/util_test.py:47: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(

pyu2f/tests/util_test.py::UtilTest::testFragmentedApdu
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/util_test.py:56: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(

pyu2f/tests/util_test.py::UtilTest::testFragmentedApdu
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/util_test.py:58: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(

pyu2f/tests/util_test.py::UtilTest::testSimplePing
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/util_test.py:33: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(

pyu2f/tests/hid/macos_test.py::MacOsTest::testCallReadSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/macos_test.py:134: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(read_result, list(range(64)), 'Read data should match '

pyu2f/tests/hid/macos_test.py::MacOsTest::testCallWriteSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/macos_test.py:84: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(set_report_call_pos_args), 5)

pyu2f/tests/hid/macos_test.py::MacOsTest::testCallWriteSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/macos_test.py:85: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(set_report_call_pos_args[0], 'handle')

pyu2f/tests/hid/macos_test.py::MacOsTest::testCallWriteSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/macos_test.py:86: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(set_report_call_pos_args[1], 1)

pyu2f/tests/hid/macos_test.py::MacOsTest::testCallWriteSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/macos_test.py:87: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(set_report_call_pos_args[2], 0)

pyu2f/tests/hid/macos_test.py::MacOsTest::testCallWriteSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/macos_test.py:88: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(set_report_call_pos_args[4], 64)

pyu2f/tests/hid/macos_test.py::MacOsTest::testInitHidDevice
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/macos_test.py:60: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(64, device.GetInReportDataLength())

pyu2f/tests/hid/macos_test.py::MacOsTest::testInitHidDevice
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/macos_test.py:61: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(64, device.GetOutReportDataLength())

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
================================================================================== short test summary info ==================================================================================
FAILED pyu2f/tests/hid/linux_test.py::LinuxTest::testCallEnumerate - AttributeError: 'FakeFilesystem' object has no attribute 'CreateDirectory'
FAILED pyu2f/tests/hid/linux_test.py::LinuxTest::testCallOpen - AttributeError: 'FakeFilesystem' object has no attribute 'CreateDirectory'
======================================================================== 2 failed, 61 passed, 149 warnings in 1.81s =========================================================================

Here is list of installed modules in build env

Package         Version
--------------- --------------
attrs           22.2.0
build           0.9.0
distro          1.8.0
exceptiongroup  1.0.0
gpg             1.18.0-unknown
iniconfig       2.0.0
libcomps        0.1.19
mock            4.0.3
packaging       23.0
pep517          0.13.0
pip             22.3.1
pluggy          1.0.0
pyfakefs        5.1.0
pytest          7.2.2
python-dateutil 2.8.2
rpm             4.17.0
setuptools      65.6.3
six             1.16.0
tomli           2.0.1
wheel           0.38.4

Please make a new release

The current release has test failures with the modern versions of pyfakefs and Python 3.12 that were fixed over 2 years ago. Could you make a new release, please?

Missing FillDeviceAttributes in WindowsHidDevice __init__

When running hidtransport.DiscoverLocalHIDU2FDevices() on Windows, HID devices returned seem to be missing HID attributes such as PID and VID. Tracing through the code it appears that FillDeviceAttributes needs to added to WindowsHidDevice init function.

class WindowsHidDevice(base.HidDevice): ... def __init__(self, path): """See base class.""" base.HidDevice.__init__(self, path) self.dev = OpenDevice(path) self.desc = base.DeviceDescriptor() FillDeviceAttributes(self.dev, self.desc) #added function call to copy attributes FillDeviceCapabilities(self.dev, self.desc)

basic Register + Authenticate fails

On the project home page, it's not really clear to me where the b64_encoded_key comes from, so it is quite likely that I've done something wrong, but where? Is this how am I supposed to extract the key handle?
My aim is to just verify the signature from Authenticate, but python-cryptography keeps throwing InvalidSignature.
Am I parsing the signature returned wrong? Is there a better way than this awful asn1 code?
Or am I generating the sha256 from the wrong arguments or format?
Tested with a yubikey by running the script below and pressing the button twice when needed.
Any help would be much appreciated.

import struct
import binascii
from hashlib import sha256
from pyu2f import model
from pyu2f.u2f import GetLocalU2FInterface

iface = GetLocalU2FInterface()
APP_ID = u"Xpra"

def h(s):
    try:
        s = s.encode()
    except:
        pass
    return binascii.hexlify(s)

register app:
registered_keys = []
challenge= b'01234567890123456789012345678901'
rr = iface.Register(APP_ID, challenge, registered_keys)
b = rr.registration_data
assert b[0]==5
pubkey = bytes(b[1:66])
khl = b[66]
key_handle = bytes(b[67:67 + khl])
print("key_handle=%s" % h(key_handle))
print("public key=%s" % h(pubkey))

key = model.RegisteredKey(key_handle)
challenge= b'01234567890123456789012345678901'
response = iface.Authenticate(APP_ID, challenge, [key])
sig = response.signature_data
client_data = response.client_data
print("signature_data=%s (%s len=%i)" % (h(sig), type(sig), len(sig)))
print("client_data=%s (%s)" % (client_data, type(client_data),))

touch = bool(sig[0])
counter = struct.unpack('>I', sig[1:5])[0]
print("touch=%s, counter=%i" % (touch, counter))
assert sig[5] == 0x30

def verify(sig):
    from cryptography.hazmat.primitives import hashes
    from cryptography.hazmat.primitives.asymmetric import ec
    from cryptography.hazmat.primitives.serialization import load_der_public_key
    from cryptography.hazmat.backends import default_backend
    PUB_KEY_DER_PREFIX = binascii.a2b_hex('3059301306072a8648ce3d020106082a8648ce3d030107034200')
    der_pubkey = PUB_KEY_DER_PREFIX+pubkey
    key = load_der_public_key(der_pubkey, default_backend())
    verifier = key.verifier(sig, ec.ECDSA(hashes.SHA256()))
    app_param = sha256(APP_ID.encode('utf8')).digest()
    client_param = sha256(client_data.GetJson().encode('utf8')).digest()
    verifier.update(app_param+
                    struct.pack('>B', True) +
                    struct.pack('>I', counter) +
                    client_param,
                    )
    verifier.verify()

#hacked asn1 parsing:
l1 = sig[5+3]
l2 = sig[5+4+l1+1]
from pyasn1.codec.der.decoder import decode
a1s = bytes(sig[5+2:5+2+2+l1])
a1 = decode(a1s)
a2s = bytes(sig[5+4+l1:])
a2 = decode(a2s)
#convert a big number back into bytes:
def si(v):
    s = b""
    while v>0:
        s = struct.pack("@B", v%256)+s
        v = v//256
    return s
n1 = si(a1[0])
n2 = si(a2[0])
for sig in (n1, n2, n1+n2):
    try:
        verify(sig)
    except Exception as e:
        print("signature %s failed: %s" % (h(sig), type(e)))
    else:
        print("SUCCESS!")
        break

0.1.5: pytest `DeprecationWarning` warnings

I'm trying to package your module as an rpm package. So I'm using the typical build, install and test cycle used on building packages from non-root account.

  • "setup.py build"
  • "setup.py install --root </install/prefix>"
  • "pytest with PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>

Looks like pytest shows some DeprecationWarning warnings:

+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-pyu2f-0.1.5-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-pyu2f-0.1.5-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra
=========================================================================== test session starts ============================================================================
platform linux -- Python 3.8.11, pytest-6.2.5, py-1.10.0, pluggy-0.13.1
benchmark: 3.4.1 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
Using --randomly-seed=190073950
rootdir: /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5
plugins: forked-1.3.0, shutil-1.7.0, virtualenv-1.7.0, expect-1.1.0, flake8-1.0.7, timeout-1.4.2, betamax-0.8.1, freezegun-0.4.2, aspectlib-1.5.2, toolbox-0.5, rerunfailures-9.1.1, requests-mock-1.9.3, cov-2.12.1, flaky-3.7.0, benchmark-3.4.1, xdist-2.3.0, pylama-7.7.1, datadir-1.3.1, regressions-2.2.0, cases-3.6.3, xprocess-0.18.1, black-0.3.12, anyio-3.3.0, asyncio-0.15.1, trio-0.7.0, subtests-0.5.0, isort-2.0.0, hypothesis-6.14.6, mock-3.6.1, profiling-1.7.0, randomly-3.8.0, Faker-8.12.1, nose2pytest-1.0.8, pyfakefs-4.5.1, tornado-0.8.1
collected 63 items

pyu2f/tests/localauthenticator_test.py ...                                                                                                                           [  4%]
pyu2f/tests/hidtransport_test.py ..........                                                                                                                          [ 20%]
pyu2f/tests/model_test.py ...                                                                                                                                        [ 25%]
pyu2f/tests/customauthenticator_test.py .......                                                                                                                      [ 36%]
pyu2f/tests/hardware_test.py ...........                                                                                                                             [ 53%]
pyu2f/tests/apdu_test.py .........                                                                                                                                   [ 68%]
pyu2f/tests/hid/linux_test.py ..                                                                                                                                     [ 71%]
pyu2f/tests/hid/macos_test.py ....                                                                                                                                   [ 77%]
pyu2f/tests/util_test.py ...                                                                                                                                         [ 82%]
pyu2f/tests/u2f_test.py ...........                                                                                                                                  [100%]

============================================================================= warnings summary =============================================================================
pyu2f/hid/macos.py:177
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/hid/macos.py:177: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
    logger.warn('Not running on MacOS')

pyu2f/tests/localauthenticator_test.py::LocalAuthenticatorTest::testSignMultipleIneligible
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/localauthenticator_test.py:128: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.code, errors.U2FError.DEVICE_INELIGIBLE)

pyu2f/tests/localauthenticator_test.py::LocalAuthenticatorTest::testSignMultipleSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/localauthenticator_test.py:171: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(response.get('clientData'),

pyu2f/tests/localauthenticator_test.py::LocalAuthenticatorTest::testSignMultipleSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/localauthenticator_test.py:173: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(response.get('signatureData'),

pyu2f/tests/localauthenticator_test.py::LocalAuthenticatorTest::testSignMultipleSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/localauthenticator_test.py:175: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(response.get('applicationId'),

pyu2f/tests/localauthenticator_test.py::LocalAuthenticatorTest::testSignMultipleSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/localauthenticator_test.py:177: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(response.get('keyHandle'),

pyu2f/tests/localauthenticator_test.py::LocalAuthenticatorTest::testSignSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/localauthenticator_test.py:95: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(response.get('clientData'),

pyu2f/tests/localauthenticator_test.py::LocalAuthenticatorTest::testSignSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/localauthenticator_test.py:97: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(response.get('signatureData'),

pyu2f/tests/localauthenticator_test.py::LocalAuthenticatorTest::testSignSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/localauthenticator_test.py:99: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(response.get('applicationId'),

pyu2f/tests/localauthenticator_test.py::LocalAuthenticatorTest::testSignSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/localauthenticator_test.py:101: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(response.get('keyHandle'),

pyu2f/tests/hidtransport_test.py::TransportTest::testContPacketShape
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:177: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(packet.ToWireFormat(), RPad([0, 0, 0, 1, 5, 1, 2], 64))

pyu2f/tests/hidtransport_test.py::TransportTest::testContPacketShape
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:181: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(copy.cid, bytearray(b'\x00\x00\x00\x01'))

pyu2f/tests/hidtransport_test.py::TransportTest::testContPacketShape
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:182: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(copy.seq, 5)

pyu2f/tests/hidtransport_test.py::TransportTest::testContPacketShape
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:183: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(copy.payload, RPad(bytearray(b'\x01\x02'), 59))

pyu2f/tests/hidtransport_test.py::TransportTest::testMsgBusy
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:132: DeprecationWarning: Please use assertRaisesRegex instead.
    self.assertRaisesRegexp(errors.HidError, '^Device Busy', t.SendMsgBytes,

pyu2f/tests/hidtransport_test.py::TransportTest::testMsgBusy
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:136: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(reply, bytearray([0x01, 0x90, 0x00]))

pyu2f/tests/hidtransport_test.py::TransportTest::testFragmentedSendApdu
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:154: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(reply, bytearray([0x90, 0x00]))

pyu2f/tests/hidtransport_test.py::TransportTest::testFragmentedSendApdu
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:157: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(fake_hid_dev.received_packets), 18)

pyu2f/tests/hidtransport_test.py::TransportTest::testInitPacketShape
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:163: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(packet.ToWireFormat(), RPad(

pyu2f/tests/hidtransport_test.py::TransportTest::testInitPacketShape
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:168: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(copy.cid, bytearray(b'\x00\x00\x00\x01'))

pyu2f/tests/hidtransport_test.py::TransportTest::testInitPacketShape
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:169: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(copy.cmd, 0x83)

pyu2f/tests/hidtransport_test.py::TransportTest::testInitPacketShape
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:170: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(copy.size, 2)

pyu2f/tests/hidtransport_test.py::TransportTest::testInitPacketShape
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:171: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(copy.payload, bytearray(b'\x01\x02'))

pyu2f/tests/hidtransport_test.py::TransportTest::testFragmentedResponseMsg
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:145: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(reply, bytearray(x % 256 for x in range(0, 1000)))

pyu2f/tests/hidtransport_test.py::TransportTest::testMsg
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:121: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(reply, bytearray([0x01, 0x90, 0x00]))

pyu2f/tests/hidtransport_test.py::TransportTest::testPing
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:113: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(reply, b'1234')

pyu2f/tests/hidtransport_test.py::TransportTest::testInit
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:105: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(t.cid, bytearray([0x00, 0x00, 0x00, 0x01]))

pyu2f/tests/hidtransport_test.py::TransportTest::testInit
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:106: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(t.u2fhid_version, 0x01)

pyu2f/tests/hidtransport_test.py::DiscoveryTest::testDiscoverLocalDevices
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:92: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(hid_mock.Enumerate.call_count, 1)

pyu2f/tests/hidtransport_test.py::DiscoveryTest::testDiscoverLocalDevices
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:93: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(hid_mock.Open.call_count, 2)

pyu2f/tests/hidtransport_test.py::DiscoveryTest::testDiscoverLocalDevices
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:94: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(devs), 2)

pyu2f/tests/hidtransport_test.py::DiscoveryTest::testDiscoverLocalDevices
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:96: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(devs[0].hid_device.path, 'path3')

pyu2f/tests/hidtransport_test.py::DiscoveryTest::testDiscoverLocalDevices
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hidtransport_test.py:97: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(devs[1].hid_device.path, 'path4')

pyu2f/tests/model_test.py::ModelTest::testClientDataAuth
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/model_test.py:44: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(list(obj.keys())), 3)

pyu2f/tests/model_test.py::ModelTest::testClientDataAuth
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/model_test.py:45: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(obj['typ'], model.ClientData.TYP_AUTHENTICATION)

pyu2f/tests/model_test.py::ModelTest::testClientDataAuth
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/model_test.py:46: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(obj['challenge'], 'QUJDRA')

pyu2f/tests/model_test.py::ModelTest::testClientDataAuth
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/model_test.py:47: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(obj['origin'], 'somemachine')

pyu2f/tests/model_test.py::ModelTest::testClientDataRegistration
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/model_test.py:35: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(list(obj.keys())), 3)

pyu2f/tests/model_test.py::ModelTest::testClientDataRegistration
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/model_test.py:36: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(obj['typ'], model.ClientData.TYP_REGISTRATION)

pyu2f/tests/model_test.py::ModelTest::testClientDataRegistration
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/model_test.py:37: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(obj['challenge'], 'QUJDRA')

pyu2f/tests/model_test.py::ModelTest::testClientDataRegistration
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/model_test.py:38: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(obj['origin'], 'somemachine')

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testPluginReturnsWrongData
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:372: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.code, errors.U2FError.DEVICE_INELIGIBLE)

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:125: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(communicate_args), 1,

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:132: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(communicate_json), communicate_json_len,

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:137: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(communicate_dict.get('type'), 'sign_helper_request')

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:138: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(communicate_dict.get('timeoutSeconds'), 5)

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:139: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(communicate_dict.get('localAlways'), True)

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:144: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(challenges), 1)

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:146: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(challenge.get('appIdHash'),

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:148: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(challenge.get('challengeHash'),

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:150: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(challenge.get('keyHandle'),

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:152: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(challenge.get('version'),

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:158: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(result['applicationId'], SIGN_SUCCESS['app_id'])

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:159: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(result['clientData'], SIGN_SUCCESS['client_data_encoded'])

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:160: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(result['keyHandle'], SIGN_SUCCESS['key_handle_encoded'])

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testSuccessAuthenticate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:161: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(result['signatureData'],

pyu2f/tests/customauthenticator_test.py::CustomAuthenticatorTest::testPluginReturnsTouchRequired
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/customauthenticator_test.py:326: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.code, errors.U2FError.TIMEOUT)

pyu2f/tests/hardware_test.py::HardwareTest::testAuthenticateTUPRequired
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:180: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)

pyu2f/tests/hardware_test.py::HardwareTest::testAuthenticateSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:137: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(reply, bytearray([0x01, 0x02]))

pyu2f/tests/hardware_test.py::HardwareTest::testAuthenticateSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:138: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)

pyu2f/tests/hardware_test.py::HardwareTest::testAuthenticateSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:140: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(sent_msg[0:4], bytearray([0x00, 0x02, 0x03, 0x00]))

pyu2f/tests/hardware_test.py::HardwareTest::testAuthenticateSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:141: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(

pyu2f/tests/hardware_test.py::HardwareTest::testVersion
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:89: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(reply, bytearray(b'U2F_V2'))

pyu2f/tests/hardware_test.py::HardwareTest::testVersion
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:90: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)

pyu2f/tests/hardware_test.py::HardwareTest::testVersion
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:92: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(sent_msg, bytearray(

pyu2f/tests/hardware_test.py::HardwareTest::testAuthenticateCheckOnly
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:160: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(reply, bytearray([0x01, 0x02]))

pyu2f/tests/hardware_test.py::HardwareTest::testAuthenticateCheckOnly
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:161: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)

pyu2f/tests/hardware_test.py::HardwareTest::testAuthenticateCheckOnly
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:163: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(sent_msg[0:4], bytearray([0x00, 0x02, 0x07, 0x00]))

pyu2f/tests/hardware_test.py::HardwareTest::testAuthenticateCheckOnly
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:164: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(

pyu2f/tests/hardware_test.py::HardwareTest::testAuthenticateInvalidKeyHandle
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:194: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)

pyu2f/tests/hardware_test.py::HardwareTest::testVersionFallback
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:104: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(reply, bytearray(b'U2F_V2'))

pyu2f/tests/hardware_test.py::HardwareTest::testVersionFallback
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:105: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_transport.SendMsgBytes.call_count, 2)

pyu2f/tests/hardware_test.py::HardwareTest::testVersionFallback
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:107: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(sent_msg), 7)

pyu2f/tests/hardware_test.py::HardwareTest::testVersionFallback
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:108: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(sent_msg[0:4], bytearray([0x00, 0x03, 0x00, 0x00]))

pyu2f/tests/hardware_test.py::HardwareTest::testVersionFallback
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:109: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(sent_msg[4:7], bytearray([0x00, 0x00, 0x00]))  # Le

pyu2f/tests/hardware_test.py::HardwareTest::testVersionFallback
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:111: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(sent_msg), 9)

pyu2f/tests/hardware_test.py::HardwareTest::testVersionFallback
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:112: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(sent_msg[0:4], bytearray([0x00, 0x03, 0x00, 0x00]))

pyu2f/tests/hardware_test.py::HardwareTest::testVersionFallback
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:113: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(sent_msg[4:7], bytearray([0x00, 0x00, 0x00]))  # Lc

pyu2f/tests/hardware_test.py::HardwareTest::testVersionFallback
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:114: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(sent_msg[7:9], bytearray([0x00, 0x00]))  # Le

pyu2f/tests/hardware_test.py::HardwareTest::testVersionErrors
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:123: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)

pyu2f/tests/hardware_test.py::HardwareTest::testRegisterSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:63: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(reply, bytearray([0x01, 0x02]))

pyu2f/tests/hardware_test.py::HardwareTest::testRegisterSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:64: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)

pyu2f/tests/hardware_test.py::HardwareTest::testRegisterSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:66: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(sent_msg[0:4], bytearray([0x00, 0x01, 0x03, 0x00]))

pyu2f/tests/hardware_test.py::HardwareTest::testRegisterSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:67: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(sent_msg[7:-2], bytearray(challenge_param + app_param))

pyu2f/tests/hardware_test.py::HardwareTest::testRegisterTUPRequired
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hardware_test.py:80: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)

pyu2f/tests/hid/linux_test.py::LinuxTest::testCallOpen
pyu2f/tests/hid/linux_test.py::LinuxTest::testCallEnumerate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/linux_test.py:82: DeprecationWarning: Call to deprecated function CreateDirectory. Use create_dir instead.
    self.fs.CreateDirectory('/sys/class/hidraw')

pyu2f/tests/hid/linux_test.py::LinuxTest::testCallOpen
pyu2f/tests/hid/linux_test.py::LinuxTest::testCallEnumerate
pyu2f/tests/hid/linux_test.py::LinuxTest::testCallEnumerate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/linux_test.py:52: DeprecationWarning: Call to deprecated function CreateFile. Use create_file instead.
    uevent = fs.CreateFile('/sys/class/hidraw/%s/device/uevent' % dev_name)

pyu2f/tests/hid/linux_test.py::LinuxTest::testCallOpen
pyu2f/tests/hid/linux_test.py::LinuxTest::testCallEnumerate
pyu2f/tests/hid/linux_test.py::LinuxTest::testCallEnumerate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/linux_test.py:53: DeprecationWarning: Call to deprecated function CreateFile. Use create_file instead.
    rd = fs.CreateFile('/sys/class/hidraw/%s/device/report_descriptor' % dev_name)

pyu2f/tests/hid/linux_test.py::LinuxTest::testCallOpen
pyu2f/tests/hid/linux_test.py::LinuxTest::testCallEnumerate
pyu2f/tests/hid/linux_test.py::LinuxTest::testCallEnumerate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/linux_test.py:55: DeprecationWarning: Call to deprecated function SetContents. Use set_contents instead.
    rd.SetContents(report_descriptor)

pyu2f/tests/hid/linux_test.py::LinuxTest::testCallOpen
pyu2f/tests/hid/linux_test.py::LinuxTest::testCallEnumerate
pyu2f/tests/hid/linux_test.py::LinuxTest::testCallEnumerate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/linux_test.py:59: DeprecationWarning: Call to deprecated function SetContents. Use set_contents instead.
    uevent.SetContents(buf)

pyu2f/tests/hid/linux_test.py::LinuxTest::testCallOpen
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/linux_test.py:115: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(dev.GetInReportDataLength(), 64)

pyu2f/tests/hid/linux_test.py::LinuxTest::testCallOpen
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/linux_test.py:116: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(dev.GetOutReportDataLength(), 64)

pyu2f/tests/hid/linux_test.py::LinuxTest::testCallOpen
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/linux_test.py:121: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(list(fake_dev_os.data_written),

pyu2f/tests/hid/linux_test.py::LinuxTest::testCallOpen
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/linux_test.py:125: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(dev.Read(), [120] * 64)  # chr(120) = 'x'

pyu2f/tests/hid/linux_test.py::LinuxTest::testCallOpen
pyu2f/tests/hid/linux_test.py::LinuxTest::testCallEnumerate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/linux_test.py:85: DeprecationWarning: Call to deprecated function RemoveObject. Use remove_object instead.
    self.fs.RemoveObject('/sys/class/hidraw')

pyu2f/tests/hid/linux_test.py::LinuxTest::testCallEnumerate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/linux_test.py:97: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(devs), 2)

pyu2f/tests/hid/linux_test.py::LinuxTest::testCallEnumerate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/linux_test.py:98: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(devs[0]['vendor_id'], 0x046d)

pyu2f/tests/hid/linux_test.py::LinuxTest::testCallEnumerate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/linux_test.py:99: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(devs[0]['product_id'], 0x0c31c)

pyu2f/tests/hid/linux_test.py::LinuxTest::testCallEnumerate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/linux_test.py:100: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(devs[1]['vendor_id'], 0x1050)

pyu2f/tests/hid/linux_test.py::LinuxTest::testCallEnumerate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/linux_test.py:101: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(devs[1]['product_id'], 0x0407)

pyu2f/tests/hid/linux_test.py::LinuxTest::testCallEnumerate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/linux_test.py:102: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(devs[1]['usage_page'], 0xf1d0)

pyu2f/tests/hid/linux_test.py::LinuxTest::testCallEnumerate
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/linux_test.py:103: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(devs[1]['usage'], 1)

pyu2f/tests/hid/macos_test.py::MacOsTest::testCallReadSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/macos_test.py:134: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(read_result, list(range(64)), 'Read data should match '

pyu2f/tests/hid/macos_test.py::MacOsTest::testCallWriteSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/macos_test.py:84: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(len(set_report_call_pos_args), 5)

pyu2f/tests/hid/macos_test.py::MacOsTest::testCallWriteSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/macos_test.py:85: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(set_report_call_pos_args[0], 'handle')

pyu2f/tests/hid/macos_test.py::MacOsTest::testCallWriteSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/macos_test.py:86: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(set_report_call_pos_args[1], 1)

pyu2f/tests/hid/macos_test.py::MacOsTest::testCallWriteSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/macos_test.py:87: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(set_report_call_pos_args[2], 0)

pyu2f/tests/hid/macos_test.py::MacOsTest::testCallWriteSuccess
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/macos_test.py:88: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(set_report_call_pos_args[4], 64)

pyu2f/tests/hid/macos_test.py::MacOsTest::testCallWriteSuccess
  /usr/lib/python3.8/site-packages/_pytest/unraisableexception.py:78: PytestUnraisableExceptionWarning: Exception ignored in: <function MacOsHidDevice.__del__ at 0x7f12a06c00d0>

  Traceback (most recent call last):
    File "/home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/hid/macos.py", line 454, in __del__
      cf.CFRunLoopStop(self.run_loop_ref)
    File "/usr/lib64/python3.8/ctypes/__init__.py", line 386, in __getattr__
      func = self.__getitem__(name)
    File "/usr/lib64/python3.8/ctypes/__init__.py", line 391, in __getitem__
      func = self._FuncPtr((name_or_ordinal, self))
  AttributeError: /usr/bin/python3: undefined symbol: CFRunLoopStop

    warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))

pyu2f/tests/hid/macos_test.py::MacOsTest::testInitHidDevice
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/macos_test.py:60: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(64, device.GetInReportDataLength())

pyu2f/tests/hid/macos_test.py::MacOsTest::testInitHidDevice
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/hid/macos_test.py:61: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(64, device.GetOutReportDataLength())

pyu2f/tests/util_test.py::UtilTest::testFragmentedApdu
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/util_test.py:56: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(

pyu2f/tests/util_test.py::UtilTest::testFragmentedApdu
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/util_test.py:58: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(

pyu2f/tests/util_test.py::UtilTest::testErrorBusy
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/util_test.py:41: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(

pyu2f/tests/util_test.py::UtilTest::testErrorBusy
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/util_test.py:44: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(

pyu2f/tests/util_test.py::UtilTest::testErrorBusy
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/util_test.py:47: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(

pyu2f/tests/util_test.py::UtilTest::testSimplePing
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/util_test.py:33: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithPreviousKeys
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:56: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdAuthenticate.call_count, 1)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithPreviousKeys
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:60: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdRegister.call_count, 2)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithPreviousKeys
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:61: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdWink.call_count, 1)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithPreviousKeys
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:62: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.client_data.raw_server_challenge, b'ABCD')

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithPreviousKeys
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:63: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.client_data.typ, 'navigator.id.finishEnrollment')

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithPreviousKeys
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:64: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.registration_data, 'regdata')

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithPreviousKeys
  /usr/lib/python3.8/site-packages/_pytest/unraisableexception.py:78: PytestUnraisableExceptionWarning: Exception ignored in: <function MacOsHidDevice.__del__ at 0x7f12a06c00d0>

  Traceback (most recent call last):
    File "/home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/hid/macos.py", line 445, in __del__
      iokit.IOHIDDeviceRegisterInputReportCallback(
    File "/usr/lib64/python3.8/ctypes/__init__.py", line 386, in __getattr__
      func = self.__getitem__(name)
    File "/usr/lib64/python3.8/ctypes/__init__.py", line 391, in __getitem__
      func = self._FuncPtr((name_or_ordinal, self))
  AttributeError: /usr/bin/python3: undefined symbol: IOHIDDeviceRegisterInputReportCallback

    warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidVersion
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:159: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdAuthenticate.call_count, 1)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidVersion
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:160: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdWink.call_count, 0)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidVersion
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:161: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.key_handle, 'khB')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidVersion
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:162: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.client_data.raw_server_challenge, b'ABCD')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidVersion
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:163: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.client_data.typ, 'navigator.id.getAssertion')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidVersion
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:164: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.signature_data, 'signature')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateTimeout
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:176: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.code, errors.U2FError.TIMEOUT)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateTimeout
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:177: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdAuthenticate.call_count, 30)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateTimeout
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:178: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdWink.call_count, 30)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:41: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdRegister.call_count, 2)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:42: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdWink.call_count, 1)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:43: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.client_data.raw_server_challenge, b'ABCD')

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:44: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.client_data.typ, 'navigator.id.finishEnrollment')

pyu2f/tests/u2f_test.py::U2fTest::testRegisterSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:45: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.registration_data, 'regdata')

pyu2f/tests/u2f_test.py::U2fTest::testRegisterFailAlreadyRegistered
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:75: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.code, errors.U2FError.DEVICE_INELIGIBLE)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterFailAlreadyRegistered
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:77: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdAuthenticate.call_count, 1)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterFailAlreadyRegistered
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:81: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdRegister.call_count, 0)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterFailAlreadyRegistered
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:82: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdWink.call_count, 0)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateAllKeysInvalid
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:190: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.code, errors.U2FError.DEVICE_INELIGIBLE)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:122: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdAuthenticate.call_count, 2)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:123: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdWink.call_count, 1)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:124: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.key_handle, 'khA')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:125: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.client_data.raw_server_challenge, b'ABCD')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:126: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.client_data.typ, 'navigator.id.getAssertion')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessWithTUP
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:127: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.signature_data, 'signature')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidKey
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:140: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdAuthenticate.call_count, 2)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidKey
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:141: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdWink.call_count, 0)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidKey
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:142: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.key_handle, 'khB')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidKey
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:143: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.client_data.raw_server_challenge, b'ABCD')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidKey
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:144: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.client_data.typ, 'navigator.id.getAssertion')

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateSuccessSkipInvalidKey
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:145: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(resp.signature_data, 'signature')

pyu2f/tests/u2f_test.py::U2fTest::testRegisterTimeout
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:94: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.code, errors.U2FError.TIMEOUT)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterTimeout
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:95: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdRegister.call_count, 30)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterTimeout
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:96: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdWink.call_count, 30)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterError
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:106: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.code, errors.U2FError.BAD_REQUEST)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterError
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:107: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.cause.sw1, 0xff)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterError
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:108: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.cause.sw2, 0xff)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterError
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:110: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdRegister.call_count, 1)

pyu2f/tests/u2f_test.py::U2fTest::testRegisterError
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:111: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdWink.call_count, 0)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateError
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:202: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.code, errors.U2FError.BAD_REQUEST)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateError
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:203: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.cause.sw1, 0xff)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateError
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:204: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(cm.exception.cause.sw2, 0xff)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateError
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:206: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdAuthenticate.call_count, 1)

pyu2f/tests/u2f_test.py::U2fTest::testAuthenticateError
  /home/tkloczko/rpmbuild/BUILD/pyu2f-0.1.5/pyu2f/tests/u2f_test.py:207: DeprecationWarning: Please use assertEqual instead.
    self.assertEquals(mock_sk.CmdWink.call_count, 0)

-- Docs: https://docs.pytest.org/en/stable/warnings.html
===================================================================== 63 passed, 178 warnings in 2.23s =====================================================================
pytest-xprocess reminder::Be sure to terminate the started process by running 'pytest --xkill' if you have not explicitly done so in your fixture with 'xprocess.getinfo(<process_name>).terminate()'.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.