Sync from SUSE:ALP:Source:Standard:1.0 python-pyu2f revision 0c70e84185adef02533048ff5421310f
This commit is contained in:
commit
1a67d0256d
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
59
fix-deprecation-warning.patch
Normal file
59
fix-deprecation-warning.patch
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
From 5e2f862dd5ba61eadff341dbf0a1202e91b1b145 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cary Zhao <zhaosukima@gmail.com>
|
||||||
|
Date: Mon, 22 Nov 2021 10:42:06 -0800
|
||||||
|
Subject: [PATCH] fix DeprecationWarning for logging and fake_filesystem
|
||||||
|
|
||||||
|
---
|
||||||
|
pyu2f/hid/macos.py | 2 +-
|
||||||
|
pyu2f/tests/hid/linux_test.py | 12 ++++++------
|
||||||
|
2 files changed, 7 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
Index: pyu2f-0.1.5a/pyu2f/hid/macos.py
|
||||||
|
===================================================================
|
||||||
|
--- pyu2f-0.1.5a.orig/pyu2f/hid/macos.py
|
||||||
|
+++ pyu2f-0.1.5a/pyu2f/hid/macos.py
|
||||||
|
@@ -174,7 +174,7 @@ if sys.platform.startswith('darwin'):
|
||||||
|
ctypes.POINTER(ctypes.c_uint8),
|
||||||
|
CF_INDEX]
|
||||||
|
else:
|
||||||
|
- logger.warn('Not running on MacOS')
|
||||||
|
+ logger.warning('Not running on MacOS')
|
||||||
|
|
||||||
|
|
||||||
|
def CFStr(s):
|
||||||
|
Index: pyu2f-0.1.5a/pyu2f/tests/hid/linux_test.py
|
||||||
|
===================================================================
|
||||||
|
--- pyu2f-0.1.5a.orig/pyu2f/tests/hid/linux_test.py
|
||||||
|
+++ pyu2f-0.1.5a/pyu2f/tests/hid/linux_test.py
|
||||||
|
@@ -49,14 +49,14 @@ KEYBOARD_RD = (
|
||||||
|
|
||||||
|
def AddDevice(fs, dev_name, product_name,
|
||||||
|
vendor_id, product_id, report_descriptor_b64):
|
||||||
|
- uevent = fs.CreateFile('/sys/class/hidraw/%s/device/uevent' % dev_name)
|
||||||
|
- rd = fs.CreateFile('/sys/class/hidraw/%s/device/report_descriptor' % dev_name)
|
||||||
|
+ uevent = fs.create_file('/sys/class/hidraw/%s/device/uevent' % dev_name)
|
||||||
|
+ rd = fs.create_file('/sys/class/hidraw/%s/device/report_descriptor' % dev_name)
|
||||||
|
report_descriptor = base64.b64decode(report_descriptor_b64)
|
||||||
|
- rd.SetContents(report_descriptor)
|
||||||
|
+ rd.set_contents(report_descriptor)
|
||||||
|
|
||||||
|
buf = 'HID_NAME=%s\n' % product_name.encode('utf8')
|
||||||
|
buf += 'HID_ID=0001:%08X:%08X\n' % (vendor_id, product_id)
|
||||||
|
- uevent.SetContents(buf)
|
||||||
|
+ uevent.set_contents(buf)
|
||||||
|
|
||||||
|
|
||||||
|
class FakeDeviceOsModule(object):
|
||||||
|
@@ -79,10 +79,10 @@ class FakeDeviceOsModule(object):
|
||||||
|
class LinuxTest(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
self.fs = fake_filesystem.FakeFilesystem()
|
||||||
|
- self.fs.CreateDirectory('/sys/class/hidraw')
|
||||||
|
+ self.fs.create_dir('/sys/class/hidraw')
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
- self.fs.RemoveObject('/sys/class/hidraw')
|
||||||
|
+ self.fs.remove_object('/sys/class/hidraw')
|
||||||
|
|
||||||
|
def testCallEnumerate(self):
|
||||||
|
AddDevice(self.fs, 'hidraw1', 'Logitech USB Keyboard',
|
71
python-pyu2f-no-six.patch
Normal file
71
python-pyu2f-no-six.patch
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
Index: pyu2f-0.1.5a/pyu2f/convenience/localauthenticator.py
|
||||||
|
===================================================================
|
||||||
|
--- pyu2f-0.1.5a.orig/pyu2f/convenience/localauthenticator.py
|
||||||
|
+++ pyu2f-0.1.5a/pyu2f/convenience/localauthenticator.py
|
||||||
|
@@ -13,7 +13,6 @@
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
"""Convenience class for U2F signing with local security keys."""
|
||||||
|
-import six
|
||||||
|
import base64
|
||||||
|
import sys
|
||||||
|
|
||||||
|
@@ -36,7 +35,7 @@ class LocalAuthenticator(baseauthenticat
|
||||||
|
device = u2f.GetLocalU2FInterface(origin=self.origin)
|
||||||
|
except errors.NoDeviceFoundError:
|
||||||
|
print_callback('Please insert your security key and press enter...')
|
||||||
|
- six.moves.input()
|
||||||
|
+ input()
|
||||||
|
device = u2f.GetLocalU2FInterface(origin=self.origin)
|
||||||
|
|
||||||
|
print_callback('Please touch your security key.\n')
|
||||||
|
Index: pyu2f-0.1.5a/pyu2f/hid/macos.py
|
||||||
|
===================================================================
|
||||||
|
--- pyu2f-0.1.5a.orig/pyu2f/hid/macos.py
|
||||||
|
+++ pyu2f-0.1.5a/pyu2f/hid/macos.py
|
||||||
|
@@ -13,8 +13,7 @@
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
"""Implements HID device interface on MacOS using IOKit and HIDManager."""
|
||||||
|
-from six.moves import queue
|
||||||
|
-from six.moves import range
|
||||||
|
+import queue
|
||||||
|
import ctypes
|
||||||
|
import ctypes.util
|
||||||
|
import logging
|
||||||
|
Index: pyu2f-0.1.5a/pyu2f/tests/apdu_test.py
|
||||||
|
===================================================================
|
||||||
|
--- pyu2f-0.1.5a.orig/pyu2f/tests/apdu_test.py
|
||||||
|
+++ pyu2f-0.1.5a/pyu2f/tests/apdu_test.py
|
||||||
|
@@ -14,7 +14,6 @@
|
||||||
|
|
||||||
|
"""Tests for pyu2f.apdu."""
|
||||||
|
|
||||||
|
-from six.moves import range
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from pyu2f import apdu
|
||||||
|
Index: pyu2f-0.1.5a/pyu2f/tests/hidtransport_test.py
|
||||||
|
===================================================================
|
||||||
|
--- pyu2f-0.1.5a.orig/pyu2f/tests/hidtransport_test.py
|
||||||
|
+++ pyu2f-0.1.5a/pyu2f/tests/hidtransport_test.py
|
||||||
|
@@ -14,7 +14,6 @@
|
||||||
|
|
||||||
|
"""Tests for pyu2f.hidtransport."""
|
||||||
|
|
||||||
|
-from six.moves import range
|
||||||
|
import sys
|
||||||
|
|
||||||
|
import mock
|
||||||
|
Index: pyu2f-0.1.5a/pyu2f/tests/util_test.py
|
||||||
|
===================================================================
|
||||||
|
--- pyu2f-0.1.5a.orig/pyu2f/tests/util_test.py
|
||||||
|
+++ pyu2f-0.1.5a/pyu2f/tests/util_test.py
|
||||||
|
@@ -14,7 +14,6 @@
|
||||||
|
|
||||||
|
"""Tests for pyu2f.tests.lib.util."""
|
||||||
|
|
||||||
|
-from six.moves import range
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from pyu2f.tests.lib import util
|
47
python-pyu2f.changes
Normal file
47
python-pyu2f.changes
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Oct 17 07:32:00 UTC 2023 - Daniel Garcia Moreno <daniel.garcia@suse.com>
|
||||||
|
|
||||||
|
- Use upstream patches instead of custom one for python312
|
||||||
|
compatibility.
|
||||||
|
- drop python312.patch
|
||||||
|
- add python312-1.patch gh#google/pyu2f@793acd9ff661
|
||||||
|
- add python312-2.patch gh#google/pyu2f@dad654010a03
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Oct 17 07:18:36 UTC 2023 - Daniel Garcia Moreno <daniel.garcia@suse.com>
|
||||||
|
|
||||||
|
- Add python312.patch to fix tests in python3.12
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Apr 21 12:32:28 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- add sle15_python_module_pythons (jsc#PED-68)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Apr 13 22:44:20 UTC 2023 - Matej Cepl <mcepl@suse.com>
|
||||||
|
|
||||||
|
- Make calling of %{sle15modernpython} optional.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Dec 12 14:56:04 UTC 2022 - pgajdos@suse.com
|
||||||
|
|
||||||
|
- do not require six
|
||||||
|
- added patches
|
||||||
|
fix https://github.com/google/pyu2f/issues/34
|
||||||
|
+ python-pyu2f-no-six.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Nov 1 09:26:18 UTC 2022 - Markéta Machová <mmachova@suse.com>
|
||||||
|
|
||||||
|
- Add upstream fix-deprecation-warning.patch to fix compatibility
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Apr 12 08:56:31 UTC 2022 - Markéta Machová <mmachova@suse.com>
|
||||||
|
|
||||||
|
- do not use mock
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Aug 20 08:28:27 UTC 2021 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
|
||||||
|
|
||||||
|
- Initial build
|
||||||
|
+ Version 0.1.5a
|
68
python-pyu2f.spec
Normal file
68
python-pyu2f.spec
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
#
|
||||||
|
# spec file for package python-pyu2f
|
||||||
|
#
|
||||||
|
# Copyright (c) 2023 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
||||||
|
%{?sle15_python_module_pythons}
|
||||||
|
Name: python-pyu2f
|
||||||
|
Version: 0.1.5a
|
||||||
|
Release: 0
|
||||||
|
Summary: U2F host library for interacting with a U2F device over USB
|
||||||
|
License: Apache-2.0
|
||||||
|
URL: https://github.com/google/pyu2f/
|
||||||
|
Source: https://github.com/google/pyu2f/archive/refs/tags/%{version}.tar.gz#/pyu2f-%{version}.tar.gz
|
||||||
|
# PATCH-FIX-UPSTREAM https://github.com/google/pyu2f/pull/32 fix DeprecationWarning for logging and fake_filesystem
|
||||||
|
Patch: fix-deprecation-warning.patch
|
||||||
|
# https://github.com/google/pyu2f/issues/34
|
||||||
|
Patch1: python-pyu2f-no-six.patch
|
||||||
|
# PATCH-FIX-UPSTREAM python312-1.patch gh#google/pyu2f@793acd9ff661
|
||||||
|
Patch2: python312-1.patch
|
||||||
|
# PATCH-FIX-UPSTREAM python312-2.patch gh#google/pyu2f@dad654010a03
|
||||||
|
Patch3: python312-2.patch
|
||||||
|
BuildRequires: %{python_module setuptools}
|
||||||
|
BuildRequires: python-rpm-macros
|
||||||
|
# SECTION test requirements
|
||||||
|
BuildRequires: %{python_module pyfakefs >= 2.4}
|
||||||
|
BuildRequires: %{python_module pytest}
|
||||||
|
# /SECTION
|
||||||
|
BuildRequires: fdupes
|
||||||
|
BuildArch: noarch
|
||||||
|
%python_subpackages
|
||||||
|
|
||||||
|
%description
|
||||||
|
U2F host library for interacting with a U2F device over USB.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -p1 -n pyu2f-%{version}
|
||||||
|
sed -i 's/import mock/from unittest import mock/' pyu2f/tests/*_test.py pyu2f/tests/hid/*_test.py
|
||||||
|
|
||||||
|
%build
|
||||||
|
%python_build
|
||||||
|
|
||||||
|
%check
|
||||||
|
%pytest
|
||||||
|
|
||||||
|
%install
|
||||||
|
%python_install
|
||||||
|
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
||||||
|
|
||||||
|
%files %{python_files}
|
||||||
|
%doc README.md
|
||||||
|
%license LICENSE
|
||||||
|
%{python_sitelib}/*
|
||||||
|
|
||||||
|
%changelog
|
771
python312-1.patch
Normal file
771
python312-1.patch
Normal file
@ -0,0 +1,771 @@
|
|||||||
|
From dad654010a030f1038bd2df95a9647fb417e0447 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Felix Yan <felixonmars@archlinux.org>
|
||||||
|
Date: Mon, 2 Aug 2021 17:11:20 +0800
|
||||||
|
Subject: [PATCH] Fix warnings about assertEquals
|
||||||
|
|
||||||
|
Example:
|
||||||
|
```
|
||||||
|
pyu2f/tests/hid/macos_test.py::MacOsTest::testInitHidDevice
|
||||||
|
/build/python-pyu2f/src/pyu2f-0.1.5/pyu2f/tests/hid/macos_test.py:61: DeprecationWarning: Please use assertEqual instead.
|
||||||
|
self.assertEquals(64, device.GetOutReportDataLength())
|
||||||
|
```
|
||||||
|
---
|
||||||
|
pyu2f/tests/customauthenticator_test.py | 48 ++++++------
|
||||||
|
pyu2f/tests/hardware_test.py | 56 ++++++-------
|
||||||
|
pyu2f/tests/hid/linux_test.py | 24 +++---
|
||||||
|
pyu2f/tests/hid/macos_test.py | 18 ++---
|
||||||
|
pyu2f/tests/hidtransport_test.py | 44 +++++------
|
||||||
|
pyu2f/tests/localauthenticator_test.py | 34 ++++----
|
||||||
|
pyu2f/tests/model_test.py | 16 ++--
|
||||||
|
pyu2f/tests/u2f_test.py | 100 ++++++++++++------------
|
||||||
|
pyu2f/tests/util_test.py | 12 +--
|
||||||
|
9 files changed, 176 insertions(+), 176 deletions(-)
|
||||||
|
|
||||||
|
Index: pyu2f-0.1.5a/pyu2f/tests/customauthenticator_test.py
|
||||||
|
===================================================================
|
||||||
|
--- pyu2f-0.1.5a.orig/pyu2f/tests/customauthenticator_test.py
|
||||||
|
+++ pyu2f-0.1.5a/pyu2f/tests/customauthenticator_test.py
|
||||||
|
@@ -122,44 +122,44 @@ class CustomAuthenticatorTest(unittest.T
|
||||||
|
|
||||||
|
self.assertTrue(mock_communicate_method.called)
|
||||||
|
communicate_args = mock_communicate_method.call_args[0]
|
||||||
|
- self.assertEquals(len(communicate_args), 1,
|
||||||
|
- 'communicate() should have been called with two args')
|
||||||
|
+ self.assertEqual(len(communicate_args), 1,
|
||||||
|
+ 'communicate() should have been called with two args')
|
||||||
|
|
||||||
|
communicate_stdin = communicate_args[0]
|
||||||
|
communicate_json_len_le = communicate_stdin[:4]
|
||||||
|
communicate_json_len = struct.unpack('<I', communicate_json_len_le)[0]
|
||||||
|
communicate_json = communicate_stdin[4:]
|
||||||
|
- self.assertEquals(len(communicate_json), communicate_json_len,
|
||||||
|
- 'communicate() should have been called with correct'
|
||||||
|
- 'length field')
|
||||||
|
+ self.assertEqual(len(communicate_json), communicate_json_len,
|
||||||
|
+ 'communicate() should have been called with correct'
|
||||||
|
+ 'length field')
|
||||||
|
|
||||||
|
communicate_dict = json.loads(communicate_json.decode("utf8"))
|
||||||
|
- self.assertEquals(communicate_dict.get('type'), 'sign_helper_request')
|
||||||
|
- self.assertEquals(communicate_dict.get('timeoutSeconds'), 5)
|
||||||
|
- self.assertEquals(communicate_dict.get('localAlways'), True)
|
||||||
|
+ self.assertEqual(communicate_dict.get('type'), 'sign_helper_request')
|
||||||
|
+ self.assertEqual(communicate_dict.get('timeoutSeconds'), 5)
|
||||||
|
+ self.assertEqual(communicate_dict.get('localAlways'), True)
|
||||||
|
challenges = communicate_dict.get('signData')
|
||||||
|
|
||||||
|
# Validate Challenge portion of plugin request
|
||||||
|
self.assertIsNotNone(challenges)
|
||||||
|
- self.assertEquals(len(challenges), 1)
|
||||||
|
+ self.assertEqual(len(challenges), 1)
|
||||||
|
challenge = challenges[0]
|
||||||
|
- self.assertEquals(challenge.get('appIdHash'),
|
||||||
|
- SIGN_SUCCESS['app_id_hash_encoded'])
|
||||||
|
- self.assertEquals(challenge.get('challengeHash'),
|
||||||
|
- SIGN_SUCCESS['challenge_hash_encoded'])
|
||||||
|
- self.assertEquals(challenge.get('keyHandle'),
|
||||||
|
- SIGN_SUCCESS['key_handle_encoded'])
|
||||||
|
- self.assertEquals(challenge.get('version'),
|
||||||
|
- SIGN_SUCCESS['u2f_version'])
|
||||||
|
+ self.assertEqual(challenge.get('appIdHash'),
|
||||||
|
+ SIGN_SUCCESS['app_id_hash_encoded'])
|
||||||
|
+ self.assertEqual(challenge.get('challengeHash'),
|
||||||
|
+ SIGN_SUCCESS['challenge_hash_encoded'])
|
||||||
|
+ self.assertEqual(challenge.get('keyHandle'),
|
||||||
|
+ SIGN_SUCCESS['key_handle_encoded'])
|
||||||
|
+ self.assertEqual(challenge.get('version'),
|
||||||
|
+ SIGN_SUCCESS['u2f_version'])
|
||||||
|
|
||||||
|
mock_wait_method.assert_called_with()
|
||||||
|
|
||||||
|
# Validate Authenticate() response
|
||||||
|
- self.assertEquals(result['applicationId'], SIGN_SUCCESS['app_id'])
|
||||||
|
- self.assertEquals(result['clientData'], SIGN_SUCCESS['client_data_encoded'])
|
||||||
|
- self.assertEquals(result['keyHandle'], SIGN_SUCCESS['key_handle_encoded'])
|
||||||
|
- self.assertEquals(result['signatureData'],
|
||||||
|
- SIGN_SUCCESS['signature_data_encoded'])
|
||||||
|
+ self.assertEqual(result['applicationId'], SIGN_SUCCESS['app_id'])
|
||||||
|
+ self.assertEqual(result['clientData'], SIGN_SUCCESS['client_data_encoded'])
|
||||||
|
+ self.assertEqual(result['keyHandle'], SIGN_SUCCESS['key_handle_encoded'])
|
||||||
|
+ self.assertEqual(result['signatureData'],
|
||||||
|
+ SIGN_SUCCESS['signature_data_encoded'])
|
||||||
|
|
||||||
|
@mock.patch.object(customauthenticator.subprocess, 'Popen')
|
||||||
|
@mock.patch.object(customauthenticator.os.environ, 'get',
|
||||||
|
@@ -323,7 +323,7 @@ class CustomAuthenticatorTest(unittest.T
|
||||||
|
|
||||||
|
with self.assertRaises(errors.U2FError) as cm:
|
||||||
|
authenticator.Authenticate(SIGN_SUCCESS['app_id'], challenge_data)
|
||||||
|
- self.assertEquals(cm.exception.code, errors.U2FError.TIMEOUT)
|
||||||
|
+ self.assertEqual(cm.exception.code, errors.U2FError.TIMEOUT)
|
||||||
|
|
||||||
|
@mock.patch.object(customauthenticator.subprocess, 'Popen')
|
||||||
|
@mock.patch.object(customauthenticator.os.environ, 'get',
|
||||||
|
@@ -369,7 +369,7 @@ class CustomAuthenticatorTest(unittest.T
|
||||||
|
|
||||||
|
with self.assertRaises(errors.U2FError) as cm:
|
||||||
|
authenticator.Authenticate(SIGN_SUCCESS['app_id'], challenge_data)
|
||||||
|
- self.assertEquals(cm.exception.code, errors.U2FError.DEVICE_INELIGIBLE)
|
||||||
|
+ self.assertEqual(cm.exception.code, errors.U2FError.DEVICE_INELIGIBLE)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
Index: pyu2f-0.1.5a/pyu2f/tests/hardware_test.py
|
||||||
|
===================================================================
|
||||||
|
--- pyu2f-0.1.5a.orig/pyu2f/tests/hardware_test.py
|
||||||
|
+++ pyu2f-0.1.5a/pyu2f/tests/hardware_test.py
|
||||||
|
@@ -60,11 +60,11 @@ class HardwareTest(unittest.TestCase):
|
||||||
|
[0x01, 0x02, 0x90, 0x00])
|
||||||
|
|
||||||
|
reply = sk.CmdRegister(challenge_param, app_param)
|
||||||
|
- self.assertEquals(reply, bytearray([0x01, 0x02]))
|
||||||
|
- self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)
|
||||||
|
+ self.assertEqual(reply, bytearray([0x01, 0x02]))
|
||||||
|
+ self.assertEqual(mock_transport.SendMsgBytes.call_count, 1)
|
||||||
|
(sent_msg,), _ = mock_transport.SendMsgBytes.call_args
|
||||||
|
- self.assertEquals(sent_msg[0:4], bytearray([0x00, 0x01, 0x03, 0x00]))
|
||||||
|
- self.assertEquals(sent_msg[7:-2], bytearray(challenge_param + app_param))
|
||||||
|
+ self.assertEqual(sent_msg[0:4], bytearray([0x00, 0x01, 0x03, 0x00]))
|
||||||
|
+ self.assertEqual(sent_msg[7:-2], bytearray(challenge_param + app_param))
|
||||||
|
|
||||||
|
def testRegisterTUPRequired(self):
|
||||||
|
mock_transport = mock.MagicMock()
|
||||||
|
@@ -77,7 +77,7 @@ class HardwareTest(unittest.TestCase):
|
||||||
|
|
||||||
|
self.assertRaises(errors.TUPRequiredError, sk.CmdRegister, challenge_param,
|
||||||
|
app_param)
|
||||||
|
- self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)
|
||||||
|
+ self.assertEqual(mock_transport.SendMsgBytes.call_count, 1)
|
||||||
|
|
||||||
|
def testVersion(self):
|
||||||
|
mock_transport = mock.MagicMock()
|
||||||
|
@@ -86,10 +86,10 @@ class HardwareTest(unittest.TestCase):
|
||||||
|
mock_transport.SendMsgBytes.return_value = bytearray(b'U2F_V2\x90\x00')
|
||||||
|
|
||||||
|
reply = sk.CmdVersion()
|
||||||
|
- self.assertEquals(reply, bytearray(b'U2F_V2'))
|
||||||
|
- self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)
|
||||||
|
+ self.assertEqual(reply, bytearray(b'U2F_V2'))
|
||||||
|
+ self.assertEqual(mock_transport.SendMsgBytes.call_count, 1)
|
||||||
|
(sent_msg,), _ = mock_transport.SendMsgBytes.call_args
|
||||||
|
- self.assertEquals(sent_msg, bytearray(
|
||||||
|
+ self.assertEqual(sent_msg, bytearray(
|
||||||
|
[0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00]))
|
||||||
|
|
||||||
|
def testVersionFallback(self):
|
||||||
|
@@ -101,17 +101,17 @@ class HardwareTest(unittest.TestCase):
|
||||||
|
bytearray(b'U2F_V2\x90\x00')]
|
||||||
|
|
||||||
|
reply = sk.CmdVersion()
|
||||||
|
- self.assertEquals(reply, bytearray(b'U2F_V2'))
|
||||||
|
- self.assertEquals(mock_transport.SendMsgBytes.call_count, 2)
|
||||||
|
+ self.assertEqual(reply, bytearray(b'U2F_V2'))
|
||||||
|
+ self.assertEqual(mock_transport.SendMsgBytes.call_count, 2)
|
||||||
|
(sent_msg,), _ = mock_transport.SendMsgBytes.call_args_list[0]
|
||||||
|
- self.assertEquals(len(sent_msg), 7)
|
||||||
|
- self.assertEquals(sent_msg[0:4], bytearray([0x00, 0x03, 0x00, 0x00]))
|
||||||
|
- self.assertEquals(sent_msg[4:7], bytearray([0x00, 0x00, 0x00])) # Le
|
||||||
|
+ self.assertEqual(len(sent_msg), 7)
|
||||||
|
+ self.assertEqual(sent_msg[0:4], bytearray([0x00, 0x03, 0x00, 0x00]))
|
||||||
|
+ self.assertEqual(sent_msg[4:7], bytearray([0x00, 0x00, 0x00])) # Le
|
||||||
|
(sent_msg,), _ = mock_transport.SendMsgBytes.call_args_list[1]
|
||||||
|
- self.assertEquals(len(sent_msg), 9)
|
||||||
|
- self.assertEquals(sent_msg[0:4], bytearray([0x00, 0x03, 0x00, 0x00]))
|
||||||
|
- self.assertEquals(sent_msg[4:7], bytearray([0x00, 0x00, 0x00])) # Lc
|
||||||
|
- self.assertEquals(sent_msg[7:9], bytearray([0x00, 0x00])) # Le
|
||||||
|
+ self.assertEqual(len(sent_msg), 9)
|
||||||
|
+ self.assertEqual(sent_msg[0:4], bytearray([0x00, 0x03, 0x00, 0x00]))
|
||||||
|
+ self.assertEqual(sent_msg[4:7], bytearray([0x00, 0x00, 0x00])) # Lc
|
||||||
|
+ self.assertEqual(sent_msg[7:9], bytearray([0x00, 0x00])) # Le
|
||||||
|
|
||||||
|
def testVersionErrors(self):
|
||||||
|
mock_transport = mock.MagicMock()
|
||||||
|
@@ -120,7 +120,7 @@ class HardwareTest(unittest.TestCase):
|
||||||
|
mock_transport.SendMsgBytes.return_value = bytearray([0xfa, 0x05])
|
||||||
|
|
||||||
|
self.assertRaises(errors.ApduError, sk.CmdVersion)
|
||||||
|
- self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)
|
||||||
|
+ self.assertEqual(mock_transport.SendMsgBytes.call_count, 1)
|
||||||
|
|
||||||
|
def testAuthenticateSuccess(self):
|
||||||
|
mock_transport = mock.MagicMock()
|
||||||
|
@@ -134,11 +134,11 @@ class HardwareTest(unittest.TestCase):
|
||||||
|
[0x01, 0x02, 0x90, 0x00])
|
||||||
|
|
||||||
|
reply = sk.CmdAuthenticate(challenge_param, app_param, key_handle)
|
||||||
|
- self.assertEquals(reply, bytearray([0x01, 0x02]))
|
||||||
|
- self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)
|
||||||
|
+ self.assertEqual(reply, bytearray([0x01, 0x02]))
|
||||||
|
+ self.assertEqual(mock_transport.SendMsgBytes.call_count, 1)
|
||||||
|
(sent_msg,), _ = mock_transport.SendMsgBytes.call_args
|
||||||
|
- self.assertEquals(sent_msg[0:4], bytearray([0x00, 0x02, 0x03, 0x00]))
|
||||||
|
- self.assertEquals(
|
||||||
|
+ self.assertEqual(sent_msg[0:4], bytearray([0x00, 0x02, 0x03, 0x00]))
|
||||||
|
+ self.assertEqual(
|
||||||
|
sent_msg[7:-2],
|
||||||
|
bytearray(challenge_param + app_param + bytearray([4, 1, 2, 3, 4])))
|
||||||
|
|
||||||
|
@@ -157,11 +157,11 @@ class HardwareTest(unittest.TestCase):
|
||||||
|
app_param,
|
||||||
|
key_handle,
|
||||||
|
check_only=True)
|
||||||
|
- self.assertEquals(reply, bytearray([0x01, 0x02]))
|
||||||
|
- self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)
|
||||||
|
+ self.assertEqual(reply, bytearray([0x01, 0x02]))
|
||||||
|
+ self.assertEqual(mock_transport.SendMsgBytes.call_count, 1)
|
||||||
|
(sent_msg,), _ = mock_transport.SendMsgBytes.call_args
|
||||||
|
- self.assertEquals(sent_msg[0:4], bytearray([0x00, 0x02, 0x07, 0x00]))
|
||||||
|
- self.assertEquals(
|
||||||
|
+ self.assertEqual(sent_msg[0:4], bytearray([0x00, 0x02, 0x07, 0x00]))
|
||||||
|
+ self.assertEqual(
|
||||||
|
sent_msg[7:-2],
|
||||||
|
bytearray(challenge_param + app_param + bytearray([4, 1, 2, 3, 4])))
|
||||||
|
|
||||||
|
@@ -177,7 +177,7 @@ class HardwareTest(unittest.TestCase):
|
||||||
|
|
||||||
|
self.assertRaises(errors.TUPRequiredError, sk.CmdAuthenticate,
|
||||||
|
challenge_param, app_param, key_handle)
|
||||||
|
- self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)
|
||||||
|
+ self.assertEqual(mock_transport.SendMsgBytes.call_count, 1)
|
||||||
|
|
||||||
|
def testAuthenticateInvalidKeyHandle(self):
|
||||||
|
mock_transport = mock.MagicMock()
|
||||||
|
@@ -191,7 +191,7 @@ class HardwareTest(unittest.TestCase):
|
||||||
|
|
||||||
|
self.assertRaises(errors.InvalidKeyHandleError, sk.CmdAuthenticate,
|
||||||
|
challenge_param, app_param, key_handle)
|
||||||
|
- self.assertEquals(mock_transport.SendMsgBytes.call_count, 1)
|
||||||
|
+ self.assertEqual(mock_transport.SendMsgBytes.call_count, 1)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
Index: pyu2f-0.1.5a/pyu2f/tests/hid/linux_test.py
|
||||||
|
===================================================================
|
||||||
|
--- pyu2f-0.1.5a.orig/pyu2f/tests/hid/linux_test.py
|
||||||
|
+++ pyu2f-0.1.5a/pyu2f/tests/hid/linux_test.py
|
||||||
|
@@ -94,13 +94,13 @@ class LinuxTest(unittest.TestCase):
|
||||||
|
devs = list(linux.LinuxHidDevice.Enumerate())
|
||||||
|
devs = sorted(devs, key=lambda k: (k['vendor_id']))
|
||||||
|
|
||||||
|
- self.assertEquals(len(devs), 2)
|
||||||
|
- self.assertEquals(devs[0]['vendor_id'], 0x046d)
|
||||||
|
- self.assertEquals(devs[0]['product_id'], 0x0c31c)
|
||||||
|
- self.assertEquals(devs[1]['vendor_id'], 0x1050)
|
||||||
|
- self.assertEquals(devs[1]['product_id'], 0x0407)
|
||||||
|
- self.assertEquals(devs[1]['usage_page'], 0xf1d0)
|
||||||
|
- self.assertEquals(devs[1]['usage'], 1)
|
||||||
|
+ self.assertEqual(len(devs), 2)
|
||||||
|
+ self.assertEqual(devs[0]['vendor_id'], 0x046d)
|
||||||
|
+ self.assertEqual(devs[0]['product_id'], 0x0c31c)
|
||||||
|
+ self.assertEqual(devs[1]['vendor_id'], 0x1050)
|
||||||
|
+ self.assertEqual(devs[1]['product_id'], 0x0407)
|
||||||
|
+ self.assertEqual(devs[1]['usage_page'], 0xf1d0)
|
||||||
|
+ self.assertEqual(devs[1]['usage'], 1)
|
||||||
|
|
||||||
|
def testCallOpen(self):
|
||||||
|
AddDevice(self.fs, 'hidraw1', 'Yubico U2F', 0x1050, 0x0407, YUBICO_RD)
|
||||||
|
@@ -112,17 +112,17 @@ class LinuxTest(unittest.TestCase):
|
||||||
|
fake_dev_os = FakeDeviceOsModule()
|
||||||
|
with mock.patch.object(linux, 'os', fake_dev_os):
|
||||||
|
dev = linux.LinuxHidDevice('/dev/hidraw1')
|
||||||
|
- self.assertEquals(dev.GetInReportDataLength(), 64)
|
||||||
|
- self.assertEquals(dev.GetOutReportDataLength(), 64)
|
||||||
|
+ self.assertEqual(dev.GetInReportDataLength(), 64)
|
||||||
|
+ self.assertEqual(dev.GetOutReportDataLength(), 64)
|
||||||
|
|
||||||
|
dev.Write(list(range(0, 64)))
|
||||||
|
# The HidDevice implementation prepends a zero-byte representing the
|
||||||
|
# report ID
|
||||||
|
- self.assertEquals(list(fake_dev_os.data_written),
|
||||||
|
- [0] + list(range(0, 64)))
|
||||||
|
+ self.assertEqual(list(fake_dev_os.data_written),
|
||||||
|
+ [0] + list(range(0, 64)))
|
||||||
|
|
||||||
|
fake_dev_os.data_to_return = b'x' * 64
|
||||||
|
- self.assertEquals(dev.Read(), [120] * 64) # chr(120) = 'x'
|
||||||
|
+ self.assertEqual(dev.Read(), [120] * 64) # chr(120) = 'x'
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
Index: pyu2f-0.1.5a/pyu2f/tests/hid/macos_test.py
|
||||||
|
===================================================================
|
||||||
|
--- pyu2f-0.1.5a.orig/pyu2f/tests/hid/macos_test.py
|
||||||
|
+++ pyu2f-0.1.5a/pyu2f/tests/hid/macos_test.py
|
||||||
|
@@ -57,8 +57,8 @@ class MacOsTest(unittest.TestCase):
|
||||||
|
|
||||||
|
device = macos.MacOsHidDevice('fakepath')
|
||||||
|
|
||||||
|
- self.assertEquals(64, device.GetInReportDataLength())
|
||||||
|
- self.assertEquals(64, device.GetOutReportDataLength())
|
||||||
|
+ self.assertEqual(64, device.GetInReportDataLength())
|
||||||
|
+ self.assertEqual(64, device.GetOutReportDataLength())
|
||||||
|
|
||||||
|
@mock.patch.object(macos.threading, 'Thread')
|
||||||
|
@mock.patch.multiple(macos, iokit=mock.DEFAULT, cf=mock.DEFAULT,
|
||||||
|
@@ -81,11 +81,11 @@ class MacOsTest(unittest.TestCase):
|
||||||
|
self.assertIsNotNone(set_report_call_args)
|
||||||
|
|
||||||
|
set_report_call_pos_args = iokit.IOHIDDeviceSetReport.call_args[0]
|
||||||
|
- self.assertEquals(len(set_report_call_pos_args), 5)
|
||||||
|
- self.assertEquals(set_report_call_pos_args[0], 'handle')
|
||||||
|
- self.assertEquals(set_report_call_pos_args[1], 1)
|
||||||
|
- self.assertEquals(set_report_call_pos_args[2], 0)
|
||||||
|
- self.assertEquals(set_report_call_pos_args[4], 64)
|
||||||
|
+ self.assertEqual(len(set_report_call_pos_args), 5)
|
||||||
|
+ self.assertEqual(set_report_call_pos_args[0], 'handle')
|
||||||
|
+ self.assertEqual(set_report_call_pos_args[1], 1)
|
||||||
|
+ self.assertEqual(set_report_call_pos_args[2], 0)
|
||||||
|
+ self.assertEqual(set_report_call_pos_args[4], 64)
|
||||||
|
|
||||||
|
report_buffer = set_report_call_pos_args[3]
|
||||||
|
self.assertEqual(len(report_buffer), 64)
|
||||||
|
@@ -131,8 +131,8 @@ class MacOsTest(unittest.TestCase):
|
||||||
|
|
||||||
|
# Device read should return the callback data
|
||||||
|
read_result = device.Read()
|
||||||
|
- self.assertEquals(read_result, list(range(64)), 'Read data should match '
|
||||||
|
- 'data passed into the callback')
|
||||||
|
+ self.assertEqual(read_result, list(range(64)), 'Read data should match '
|
||||||
|
+ 'data passed into the callback')
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
Index: pyu2f-0.1.5a/pyu2f/tests/hidtransport_test.py
|
||||||
|
===================================================================
|
||||||
|
--- pyu2f-0.1.5a.orig/pyu2f/tests/hidtransport_test.py
|
||||||
|
+++ pyu2f-0.1.5a/pyu2f/tests/hidtransport_test.py
|
||||||
|
@@ -88,12 +88,12 @@ class DiscoveryTest(unittest.TestCase):
|
||||||
|
# Force the iterator into a list
|
||||||
|
devs = list(hidtransport.DiscoverLocalHIDU2FDevices())
|
||||||
|
|
||||||
|
- self.assertEquals(hid_mock.Enumerate.call_count, 1)
|
||||||
|
- self.assertEquals(hid_mock.Open.call_count, 2)
|
||||||
|
- self.assertEquals(len(devs), 2)
|
||||||
|
+ self.assertEqual(hid_mock.Enumerate.call_count, 1)
|
||||||
|
+ self.assertEqual(hid_mock.Open.call_count, 2)
|
||||||
|
+ self.assertEqual(len(devs), 2)
|
||||||
|
|
||||||
|
- self.assertEquals(devs[0].hid_device.path, 'path3')
|
||||||
|
- self.assertEquals(devs[1].hid_device.path, 'path4')
|
||||||
|
+ self.assertEqual(devs[0].hid_device.path, 'path3')
|
||||||
|
+ self.assertEqual(devs[1].hid_device.path, 'path4')
|
||||||
|
|
||||||
|
|
||||||
|
class TransportTest(unittest.TestCase):
|
||||||
|
@@ -101,15 +101,15 @@ class TransportTest(unittest.TestCase):
|
||||||
|
def testInit(self):
|
||||||
|
fake_hid_dev = util.FakeHidDevice(bytearray([0x00, 0x00, 0x00, 0x01]))
|
||||||
|
t = hidtransport.UsbHidTransport(fake_hid_dev)
|
||||||
|
- self.assertEquals(t.cid, bytearray([0x00, 0x00, 0x00, 0x01]))
|
||||||
|
- self.assertEquals(t.u2fhid_version, 0x01)
|
||||||
|
+ self.assertEqual(t.cid, bytearray([0x00, 0x00, 0x00, 0x01]))
|
||||||
|
+ self.assertEqual(t.u2fhid_version, 0x01)
|
||||||
|
|
||||||
|
def testPing(self):
|
||||||
|
fake_hid_dev = util.FakeHidDevice(bytearray([0x00, 0x00, 0x00, 0x01]))
|
||||||
|
t = hidtransport.UsbHidTransport(fake_hid_dev)
|
||||||
|
|
||||||
|
reply = t.SendPing(b'1234')
|
||||||
|
- self.assertEquals(reply, b'1234')
|
||||||
|
+ self.assertEqual(reply, b'1234')
|
||||||
|
|
||||||
|
def testMsg(self):
|
||||||
|
fake_hid_dev = util.FakeHidDevice(
|
||||||
|
@@ -117,7 +117,7 @@ class TransportTest(unittest.TestCase):
|
||||||
|
t = hidtransport.UsbHidTransport(fake_hid_dev)
|
||||||
|
|
||||||
|
reply = t.SendMsgBytes([0x00, 0x01, 0x00, 0x00])
|
||||||
|
- self.assertEquals(reply, bytearray([0x01, 0x90, 0x00]))
|
||||||
|
+ self.assertEqual(reply, bytearray([0x01, 0x90, 0x00]))
|
||||||
|
|
||||||
|
def testMsgBusy(self):
|
||||||
|
fake_hid_dev = util.FakeHidDevice(
|
||||||
|
@@ -132,7 +132,7 @@ class TransportTest(unittest.TestCase):
|
||||||
|
[0x00, 0x01, 0x00, 0x00])
|
||||||
|
|
||||||
|
reply = t.SendMsgBytes([0x00, 0x01, 0x00, 0x00])
|
||||||
|
- self.assertEquals(reply, bytearray([0x01, 0x90, 0x00]))
|
||||||
|
+ self.assertEqual(reply, bytearray([0x01, 0x90, 0x00]))
|
||||||
|
|
||||||
|
def testFragmentedResponseMsg(self):
|
||||||
|
body = bytearray([x % 256 for x in range(0, 1000)])
|
||||||
|
@@ -141,7 +141,7 @@ class TransportTest(unittest.TestCase):
|
||||||
|
|
||||||
|
reply = t.SendMsgBytes([0x00, 0x01, 0x00, 0x00])
|
||||||
|
# Confirm we properly reassemble the message
|
||||||
|
- self.assertEquals(reply, bytearray(x % 256 for x in range(0, 1000)))
|
||||||
|
+ self.assertEqual(reply, bytearray(x % 256 for x in range(0, 1000)))
|
||||||
|
|
||||||
|
def testFragmentedSendApdu(self):
|
||||||
|
body = bytearray(x % 256 for x in range(0, 1000))
|
||||||
|
@@ -150,36 +150,36 @@ class TransportTest(unittest.TestCase):
|
||||||
|
t = hidtransport.UsbHidTransport(fake_hid_dev)
|
||||||
|
|
||||||
|
reply = t.SendMsgBytes(body)
|
||||||
|
- self.assertEquals(reply, bytearray([0x90, 0x00]))
|
||||||
|
+ self.assertEqual(reply, bytearray([0x90, 0x00]))
|
||||||
|
# 1 init packet from creating transport, 18 packets to send
|
||||||
|
# the fragmented message
|
||||||
|
- self.assertEquals(len(fake_hid_dev.received_packets), 18)
|
||||||
|
+ self.assertEqual(len(fake_hid_dev.received_packets), 18)
|
||||||
|
|
||||||
|
def testInitPacketShape(self):
|
||||||
|
packet = hidtransport.UsbHidTransport.InitPacket(
|
||||||
|
64, bytearray(b'\x00\x00\x00\x01'), 0x83, 2, bytearray(b'\x01\x02'))
|
||||||
|
|
||||||
|
- self.assertEquals(packet.ToWireFormat(), RPad(
|
||||||
|
+ self.assertEqual(packet.ToWireFormat(), RPad(
|
||||||
|
[0, 0, 0, 1, 0x83, 0, 2, 1, 2], 64))
|
||||||
|
|
||||||
|
copy = hidtransport.UsbHidTransport.InitPacket.FromWireFormat(
|
||||||
|
64, packet.ToWireFormat())
|
||||||
|
- self.assertEquals(copy.cid, bytearray(b'\x00\x00\x00\x01'))
|
||||||
|
- self.assertEquals(copy.cmd, 0x83)
|
||||||
|
- self.assertEquals(copy.size, 2)
|
||||||
|
- self.assertEquals(copy.payload, bytearray(b'\x01\x02'))
|
||||||
|
+ self.assertEqual(copy.cid, bytearray(b'\x00\x00\x00\x01'))
|
||||||
|
+ self.assertEqual(copy.cmd, 0x83)
|
||||||
|
+ self.assertEqual(copy.size, 2)
|
||||||
|
+ self.assertEqual(copy.payload, bytearray(b'\x01\x02'))
|
||||||
|
|
||||||
|
def testContPacketShape(self):
|
||||||
|
packet = hidtransport.UsbHidTransport.ContPacket(
|
||||||
|
64, bytearray(b'\x00\x00\x00\x01'), 5, bytearray(b'\x01\x02'))
|
||||||
|
|
||||||
|
- self.assertEquals(packet.ToWireFormat(), RPad([0, 0, 0, 1, 5, 1, 2], 64))
|
||||||
|
+ self.assertEqual(packet.ToWireFormat(), RPad([0, 0, 0, 1, 5, 1, 2], 64))
|
||||||
|
|
||||||
|
copy = hidtransport.UsbHidTransport.ContPacket.FromWireFormat(
|
||||||
|
64, packet.ToWireFormat())
|
||||||
|
- self.assertEquals(copy.cid, bytearray(b'\x00\x00\x00\x01'))
|
||||||
|
- self.assertEquals(copy.seq, 5)
|
||||||
|
- self.assertEquals(copy.payload, RPad(bytearray(b'\x01\x02'), 59))
|
||||||
|
+ self.assertEqual(copy.cid, bytearray(b'\x00\x00\x00\x01'))
|
||||||
|
+ self.assertEqual(copy.seq, 5)
|
||||||
|
+ self.assertEqual(copy.payload, RPad(bytearray(b'\x01\x02'), 59))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
Index: pyu2f-0.1.5a/pyu2f/tests/localauthenticator_test.py
|
||||||
|
===================================================================
|
||||||
|
--- pyu2f-0.1.5a.orig/pyu2f/tests/localauthenticator_test.py
|
||||||
|
+++ pyu2f-0.1.5a/pyu2f/tests/localauthenticator_test.py
|
||||||
|
@@ -92,14 +92,14 @@ class LocalAuthenticatorTest(unittest.Te
|
||||||
|
self.assertEqual(registered_keys[0], SIGN_SUCCESS['registered_key'])
|
||||||
|
|
||||||
|
# Validate authenticator response
|
||||||
|
- self.assertEquals(response.get('clientData'),
|
||||||
|
- SIGN_SUCCESS['client_data_encoded'])
|
||||||
|
- self.assertEquals(response.get('signatureData'),
|
||||||
|
- SIGN_SUCCESS['signature_data_encoded'])
|
||||||
|
- self.assertEquals(response.get('applicationId'),
|
||||||
|
- SIGN_SUCCESS['app_id'])
|
||||||
|
- self.assertEquals(response.get('keyHandle'),
|
||||||
|
- SIGN_SUCCESS['key_handle_encoded'])
|
||||||
|
+ self.assertEqual(response.get('clientData'),
|
||||||
|
+ SIGN_SUCCESS['client_data_encoded'])
|
||||||
|
+ self.assertEqual(response.get('signatureData'),
|
||||||
|
+ SIGN_SUCCESS['signature_data_encoded'])
|
||||||
|
+ self.assertEqual(response.get('applicationId'),
|
||||||
|
+ SIGN_SUCCESS['app_id'])
|
||||||
|
+ self.assertEqual(response.get('keyHandle'),
|
||||||
|
+ SIGN_SUCCESS['key_handle_encoded'])
|
||||||
|
|
||||||
|
@mock.patch.object(localauthenticator.u2f, 'GetLocalU2FInterface')
|
||||||
|
def testSignMultipleIneligible(self, mock_get_u2f_method):
|
||||||
|
@@ -125,7 +125,7 @@ class LocalAuthenticatorTest(unittest.Te
|
||||||
|
authenticator.Authenticate(SIGN_SUCCESS['app_id'],
|
||||||
|
challenge_data)
|
||||||
|
|
||||||
|
- self.assertEquals(cm.exception.code, errors.U2FError.DEVICE_INELIGIBLE)
|
||||||
|
+ self.assertEqual(cm.exception.code, errors.U2FError.DEVICE_INELIGIBLE)
|
||||||
|
|
||||||
|
@mock.patch.object(localauthenticator.u2f, 'GetLocalU2FInterface')
|
||||||
|
def testSignMultipleSuccess(self, mock_get_u2f_method):
|
||||||
|
@@ -168,14 +168,14 @@ class LocalAuthenticatorTest(unittest.Te
|
||||||
|
self.assertEqual(registered_keys[0], SIGN_SUCCESS['registered_key'])
|
||||||
|
|
||||||
|
# Validate authenticator response
|
||||||
|
- self.assertEquals(response.get('clientData'),
|
||||||
|
- SIGN_SUCCESS['client_data_encoded'])
|
||||||
|
- self.assertEquals(response.get('signatureData'),
|
||||||
|
- SIGN_SUCCESS['signature_data_encoded'])
|
||||||
|
- self.assertEquals(response.get('applicationId'),
|
||||||
|
- SIGN_SUCCESS['app_id'])
|
||||||
|
- self.assertEquals(response.get('keyHandle'),
|
||||||
|
- SIGN_SUCCESS['key_handle_encoded'])
|
||||||
|
+ self.assertEqual(response.get('clientData'),
|
||||||
|
+ SIGN_SUCCESS['client_data_encoded'])
|
||||||
|
+ self.assertEqual(response.get('signatureData'),
|
||||||
|
+ SIGN_SUCCESS['signature_data_encoded'])
|
||||||
|
+ self.assertEqual(response.get('applicationId'),
|
||||||
|
+ SIGN_SUCCESS['app_id'])
|
||||||
|
+ self.assertEqual(response.get('keyHandle'),
|
||||||
|
+ SIGN_SUCCESS['key_handle_encoded'])
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
Index: pyu2f-0.1.5a/pyu2f/tests/model_test.py
|
||||||
|
===================================================================
|
||||||
|
--- pyu2f-0.1.5a.orig/pyu2f/tests/model_test.py
|
||||||
|
+++ pyu2f-0.1.5a/pyu2f/tests/model_test.py
|
||||||
|
@@ -32,19 +32,19 @@ class ModelTest(unittest.TestCase):
|
||||||
|
cd = model.ClientData(model.ClientData.TYP_REGISTRATION, b'ABCD',
|
||||||
|
'somemachine')
|
||||||
|
obj = json.loads(cd.GetJson())
|
||||||
|
- self.assertEquals(len(list(obj.keys())), 3)
|
||||||
|
- self.assertEquals(obj['typ'], model.ClientData.TYP_REGISTRATION)
|
||||||
|
- self.assertEquals(obj['challenge'], 'QUJDRA')
|
||||||
|
- self.assertEquals(obj['origin'], 'somemachine')
|
||||||
|
+ self.assertEqual(len(list(obj.keys())), 3)
|
||||||
|
+ self.assertEqual(obj['typ'], model.ClientData.TYP_REGISTRATION)
|
||||||
|
+ self.assertEqual(obj['challenge'], 'QUJDRA')
|
||||||
|
+ self.assertEqual(obj['origin'], 'somemachine')
|
||||||
|
|
||||||
|
def testClientDataAuth(self):
|
||||||
|
cd = model.ClientData(model.ClientData.TYP_AUTHENTICATION, b'ABCD',
|
||||||
|
'somemachine')
|
||||||
|
obj = json.loads(cd.GetJson())
|
||||||
|
- self.assertEquals(len(list(obj.keys())), 3)
|
||||||
|
- self.assertEquals(obj['typ'], model.ClientData.TYP_AUTHENTICATION)
|
||||||
|
- self.assertEquals(obj['challenge'], 'QUJDRA')
|
||||||
|
- self.assertEquals(obj['origin'], 'somemachine')
|
||||||
|
+ self.assertEqual(len(list(obj.keys())), 3)
|
||||||
|
+ self.assertEqual(obj['typ'], model.ClientData.TYP_AUTHENTICATION)
|
||||||
|
+ self.assertEqual(obj['challenge'], 'QUJDRA')
|
||||||
|
+ self.assertEqual(obj['origin'], 'somemachine')
|
||||||
|
|
||||||
|
def testClientDataInvalid(self):
|
||||||
|
self.assertRaises(errors.InvalidModelError, model.ClientData, 'foobar',
|
||||||
|
Index: pyu2f-0.1.5a/pyu2f/tests/u2f_test.py
|
||||||
|
===================================================================
|
||||||
|
--- pyu2f-0.1.5a.orig/pyu2f/tests/u2f_test.py
|
||||||
|
+++ pyu2f-0.1.5a/pyu2f/tests/u2f_test.py
|
||||||
|
@@ -38,11 +38,11 @@ class U2fTest(unittest.TestCase):
|
||||||
|
u2f_api = u2f.U2FInterface(mock_sk)
|
||||||
|
|
||||||
|
resp = u2f_api.Register('testapp', b'ABCD', [])
|
||||||
|
- self.assertEquals(mock_sk.CmdRegister.call_count, 2)
|
||||||
|
- self.assertEquals(mock_sk.CmdWink.call_count, 1)
|
||||||
|
- self.assertEquals(resp.client_data.raw_server_challenge, b'ABCD')
|
||||||
|
- self.assertEquals(resp.client_data.typ, 'navigator.id.finishEnrollment')
|
||||||
|
- self.assertEquals(resp.registration_data, 'regdata')
|
||||||
|
+ self.assertEqual(mock_sk.CmdRegister.call_count, 2)
|
||||||
|
+ self.assertEqual(mock_sk.CmdWink.call_count, 1)
|
||||||
|
+ self.assertEqual(resp.client_data.raw_server_challenge, b'ABCD')
|
||||||
|
+ self.assertEqual(resp.client_data.typ, 'navigator.id.finishEnrollment')
|
||||||
|
+ self.assertEqual(resp.registration_data, 'regdata')
|
||||||
|
|
||||||
|
def testRegisterSuccessWithPreviousKeys(self):
|
||||||
|
mock_sk = mock.MagicMock()
|
||||||
|
@@ -53,15 +53,15 @@ class U2fTest(unittest.TestCase):
|
||||||
|
u2f_api = u2f.U2FInterface(mock_sk)
|
||||||
|
|
||||||
|
resp = u2f_api.Register('testapp', b'ABCD', [model.RegisteredKey('khA')])
|
||||||
|
- self.assertEquals(mock_sk.CmdAuthenticate.call_count, 1)
|
||||||
|
+ self.assertEqual(mock_sk.CmdAuthenticate.call_count, 1)
|
||||||
|
# Should be "Check only"
|
||||||
|
self.assertTrue(mock_sk.CmdAuthenticate.call_args[0][3])
|
||||||
|
|
||||||
|
- self.assertEquals(mock_sk.CmdRegister.call_count, 2)
|
||||||
|
- self.assertEquals(mock_sk.CmdWink.call_count, 1)
|
||||||
|
- self.assertEquals(resp.client_data.raw_server_challenge, b'ABCD')
|
||||||
|
- self.assertEquals(resp.client_data.typ, 'navigator.id.finishEnrollment')
|
||||||
|
- self.assertEquals(resp.registration_data, 'regdata')
|
||||||
|
+ self.assertEqual(mock_sk.CmdRegister.call_count, 2)
|
||||||
|
+ self.assertEqual(mock_sk.CmdWink.call_count, 1)
|
||||||
|
+ self.assertEqual(resp.client_data.raw_server_challenge, b'ABCD')
|
||||||
|
+ self.assertEqual(resp.client_data.typ, 'navigator.id.finishEnrollment')
|
||||||
|
+ self.assertEqual(resp.registration_data, 'regdata')
|
||||||
|
|
||||||
|
def testRegisterFailAlreadyRegistered(self):
|
||||||
|
mock_sk = mock.MagicMock()
|
||||||
|
@@ -72,14 +72,14 @@ class U2fTest(unittest.TestCase):
|
||||||
|
|
||||||
|
with self.assertRaises(errors.U2FError) as cm:
|
||||||
|
u2f_api.Register('testapp', b'ABCD', [model.RegisteredKey('khA')])
|
||||||
|
- self.assertEquals(cm.exception.code, errors.U2FError.DEVICE_INELIGIBLE)
|
||||||
|
+ self.assertEqual(cm.exception.code, errors.U2FError.DEVICE_INELIGIBLE)
|
||||||
|
|
||||||
|
- self.assertEquals(mock_sk.CmdAuthenticate.call_count, 1)
|
||||||
|
+ self.assertEqual(mock_sk.CmdAuthenticate.call_count, 1)
|
||||||
|
# Should be "Check only"
|
||||||
|
self.assertTrue(mock_sk.CmdAuthenticate.call_args[0][3])
|
||||||
|
|
||||||
|
- self.assertEquals(mock_sk.CmdRegister.call_count, 0)
|
||||||
|
- self.assertEquals(mock_sk.CmdWink.call_count, 0)
|
||||||
|
+ self.assertEqual(mock_sk.CmdRegister.call_count, 0)
|
||||||
|
+ self.assertEqual(mock_sk.CmdWink.call_count, 0)
|
||||||
|
|
||||||
|
def testRegisterTimeout(self):
|
||||||
|
mock_sk = mock.MagicMock()
|
||||||
|
@@ -91,9 +91,9 @@ class U2fTest(unittest.TestCase):
|
||||||
|
with mock.patch.object(u2f, 'time') as _:
|
||||||
|
with self.assertRaises(errors.U2FError) as cm:
|
||||||
|
u2f_api.Register('testapp', b'ABCD', [])
|
||||||
|
- self.assertEquals(cm.exception.code, errors.U2FError.TIMEOUT)
|
||||||
|
- self.assertEquals(mock_sk.CmdRegister.call_count, 30)
|
||||||
|
- self.assertEquals(mock_sk.CmdWink.call_count, 30)
|
||||||
|
+ self.assertEqual(cm.exception.code, errors.U2FError.TIMEOUT)
|
||||||
|
+ self.assertEqual(mock_sk.CmdRegister.call_count, 30)
|
||||||
|
+ self.assertEqual(mock_sk.CmdWink.call_count, 30)
|
||||||
|
|
||||||
|
def testRegisterError(self):
|
||||||
|
mock_sk = mock.MagicMock()
|
||||||
|
@@ -103,12 +103,12 @@ class U2fTest(unittest.TestCase):
|
||||||
|
|
||||||
|
with self.assertRaises(errors.U2FError) as cm:
|
||||||
|
u2f_api.Register('testapp', b'ABCD', [])
|
||||||
|
- self.assertEquals(cm.exception.code, errors.U2FError.BAD_REQUEST)
|
||||||
|
- self.assertEquals(cm.exception.cause.sw1, 0xff)
|
||||||
|
- self.assertEquals(cm.exception.cause.sw2, 0xff)
|
||||||
|
+ self.assertEqual(cm.exception.code, errors.U2FError.BAD_REQUEST)
|
||||||
|
+ self.assertEqual(cm.exception.cause.sw1, 0xff)
|
||||||
|
+ self.assertEqual(cm.exception.cause.sw2, 0xff)
|
||||||
|
|
||||||
|
- self.assertEquals(mock_sk.CmdRegister.call_count, 1)
|
||||||
|
- self.assertEquals(mock_sk.CmdWink.call_count, 0)
|
||||||
|
+ self.assertEqual(mock_sk.CmdRegister.call_count, 1)
|
||||||
|
+ self.assertEqual(mock_sk.CmdWink.call_count, 0)
|
||||||
|
|
||||||
|
def testAuthenticateSuccessWithTUP(self):
|
||||||
|
mock_sk = mock.MagicMock()
|
||||||
|
@@ -119,12 +119,12 @@ class U2fTest(unittest.TestCase):
|
||||||
|
|
||||||
|
resp = u2f_api.Authenticate('testapp', b'ABCD',
|
||||||
|
[model.RegisteredKey('khA')])
|
||||||
|
- self.assertEquals(mock_sk.CmdAuthenticate.call_count, 2)
|
||||||
|
- self.assertEquals(mock_sk.CmdWink.call_count, 1)
|
||||||
|
- self.assertEquals(resp.key_handle, 'khA')
|
||||||
|
- self.assertEquals(resp.client_data.raw_server_challenge, b'ABCD')
|
||||||
|
- self.assertEquals(resp.client_data.typ, 'navigator.id.getAssertion')
|
||||||
|
- self.assertEquals(resp.signature_data, 'signature')
|
||||||
|
+ self.assertEqual(mock_sk.CmdAuthenticate.call_count, 2)
|
||||||
|
+ self.assertEqual(mock_sk.CmdWink.call_count, 1)
|
||||||
|
+ self.assertEqual(resp.key_handle, 'khA')
|
||||||
|
+ self.assertEqual(resp.client_data.raw_server_challenge, b'ABCD')
|
||||||
|
+ self.assertEqual(resp.client_data.typ, 'navigator.id.getAssertion')
|
||||||
|
+ self.assertEqual(resp.signature_data, 'signature')
|
||||||
|
|
||||||
|
def testAuthenticateSuccessSkipInvalidKey(self):
|
||||||
|
mock_sk = mock.MagicMock()
|
||||||
|
@@ -137,12 +137,12 @@ class U2fTest(unittest.TestCase):
|
||||||
|
resp = u2f_api.Authenticate(
|
||||||
|
'testapp', b'ABCD',
|
||||||
|
[model.RegisteredKey('khA'), model.RegisteredKey('khB')])
|
||||||
|
- self.assertEquals(mock_sk.CmdAuthenticate.call_count, 2)
|
||||||
|
- self.assertEquals(mock_sk.CmdWink.call_count, 0)
|
||||||
|
- self.assertEquals(resp.key_handle, 'khB')
|
||||||
|
- self.assertEquals(resp.client_data.raw_server_challenge, b'ABCD')
|
||||||
|
- self.assertEquals(resp.client_data.typ, 'navigator.id.getAssertion')
|
||||||
|
- self.assertEquals(resp.signature_data, 'signature')
|
||||||
|
+ self.assertEqual(mock_sk.CmdAuthenticate.call_count, 2)
|
||||||
|
+ self.assertEqual(mock_sk.CmdWink.call_count, 0)
|
||||||
|
+ self.assertEqual(resp.key_handle, 'khB')
|
||||||
|
+ self.assertEqual(resp.client_data.raw_server_challenge, b'ABCD')
|
||||||
|
+ self.assertEqual(resp.client_data.typ, 'navigator.id.getAssertion')
|
||||||
|
+ self.assertEqual(resp.signature_data, 'signature')
|
||||||
|
|
||||||
|
def testAuthenticateSuccessSkipInvalidVersion(self):
|
||||||
|
mock_sk = mock.MagicMock()
|
||||||
|
@@ -156,12 +156,12 @@ class U2fTest(unittest.TestCase):
|
||||||
|
[model.RegisteredKey('khA',
|
||||||
|
version='U2F_V3'),
|
||||||
|
model.RegisteredKey('khB')])
|
||||||
|
- self.assertEquals(mock_sk.CmdAuthenticate.call_count, 1)
|
||||||
|
- self.assertEquals(mock_sk.CmdWink.call_count, 0)
|
||||||
|
- self.assertEquals(resp.key_handle, 'khB')
|
||||||
|
- self.assertEquals(resp.client_data.raw_server_challenge, b'ABCD')
|
||||||
|
- self.assertEquals(resp.client_data.typ, 'navigator.id.getAssertion')
|
||||||
|
- self.assertEquals(resp.signature_data, 'signature')
|
||||||
|
+ self.assertEqual(mock_sk.CmdAuthenticate.call_count, 1)
|
||||||
|
+ self.assertEqual(mock_sk.CmdWink.call_count, 0)
|
||||||
|
+ self.assertEqual(resp.key_handle, 'khB')
|
||||||
|
+ self.assertEqual(resp.client_data.raw_server_challenge, b'ABCD')
|
||||||
|
+ self.assertEqual(resp.client_data.typ, 'navigator.id.getAssertion')
|
||||||
|
+ self.assertEqual(resp.signature_data, 'signature')
|
||||||
|
|
||||||
|
def testAuthenticateTimeout(self):
|
||||||
|
mock_sk = mock.MagicMock()
|
||||||
|
@@ -173,9 +173,9 @@ class U2fTest(unittest.TestCase):
|
||||||
|
with mock.patch.object(u2f, 'time') as _:
|
||||||
|
with self.assertRaises(errors.U2FError) as cm:
|
||||||
|
u2f_api.Authenticate('testapp', b'ABCD', [model.RegisteredKey('khA')])
|
||||||
|
- self.assertEquals(cm.exception.code, errors.U2FError.TIMEOUT)
|
||||||
|
- self.assertEquals(mock_sk.CmdAuthenticate.call_count, 30)
|
||||||
|
- self.assertEquals(mock_sk.CmdWink.call_count, 30)
|
||||||
|
+ self.assertEqual(cm.exception.code, errors.U2FError.TIMEOUT)
|
||||||
|
+ self.assertEqual(mock_sk.CmdAuthenticate.call_count, 30)
|
||||||
|
+ self.assertEqual(mock_sk.CmdWink.call_count, 30)
|
||||||
|
|
||||||
|
def testAuthenticateAllKeysInvalid(self):
|
||||||
|
mock_sk = mock.MagicMock()
|
||||||
|
@@ -187,7 +187,7 @@ class U2fTest(unittest.TestCase):
|
||||||
|
u2f_api.Authenticate('testapp', b'ABCD',
|
||||||
|
[model.RegisteredKey('khA'),
|
||||||
|
model.RegisteredKey('khB')])
|
||||||
|
- self.assertEquals(cm.exception.code, errors.U2FError.DEVICE_INELIGIBLE)
|
||||||
|
+ self.assertEqual(cm.exception.code, errors.U2FError.DEVICE_INELIGIBLE)
|
||||||
|
|
||||||
|
u2f_api = u2f.U2FInterface(mock_sk)
|
||||||
|
|
||||||
|
@@ -199,12 +199,12 @@ class U2fTest(unittest.TestCase):
|
||||||
|
|
||||||
|
with self.assertRaises(errors.U2FError) as cm:
|
||||||
|
u2f_api.Authenticate('testapp', b'ABCD', [model.RegisteredKey('khA')])
|
||||||
|
- self.assertEquals(cm.exception.code, errors.U2FError.BAD_REQUEST)
|
||||||
|
- self.assertEquals(cm.exception.cause.sw1, 0xff)
|
||||||
|
- self.assertEquals(cm.exception.cause.sw2, 0xff)
|
||||||
|
+ self.assertEqual(cm.exception.code, errors.U2FError.BAD_REQUEST)
|
||||||
|
+ self.assertEqual(cm.exception.cause.sw1, 0xff)
|
||||||
|
+ self.assertEqual(cm.exception.cause.sw2, 0xff)
|
||||||
|
|
||||||
|
- self.assertEquals(mock_sk.CmdAuthenticate.call_count, 1)
|
||||||
|
- self.assertEquals(mock_sk.CmdWink.call_count, 0)
|
||||||
|
+ self.assertEqual(mock_sk.CmdAuthenticate.call_count, 1)
|
||||||
|
+ self.assertEqual(mock_sk.CmdWink.call_count, 0)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
Index: pyu2f-0.1.5a/pyu2f/tests/util_test.py
|
||||||
|
===================================================================
|
||||||
|
--- pyu2f-0.1.5a.orig/pyu2f/tests/util_test.py
|
||||||
|
+++ pyu2f-0.1.5a/pyu2f/tests/util_test.py
|
||||||
|
@@ -29,7 +29,7 @@ class UtilTest(unittest.TestCase):
|
||||||
|
def testSimplePing(self):
|
||||||
|
dev = util.FakeHidDevice(cid_to_allocate=None)
|
||||||
|
dev.Write([0, 0, 0, 1, 0x81, 0, 3, 1, 2, 3])
|
||||||
|
- self.assertEquals(
|
||||||
|
+ self.assertEqual(
|
||||||
|
dev.Read(), [0, 0, 0, 1, 0x81, 0, 3, 1, 2, 3] + [0
|
||||||
|
for _ in range(54)])
|
||||||
|
|
||||||
|
@@ -37,13 +37,13 @@ class UtilTest(unittest.TestCase):
|
||||||
|
dev = util.FakeHidDevice(cid_to_allocate=None)
|
||||||
|
dev.SetChannelBusyCount(2)
|
||||||
|
dev.Write([0, 0, 0, 1, 0x81, 0, 3, 1, 2, 3])
|
||||||
|
- self.assertEquals(
|
||||||
|
+ self.assertEqual(
|
||||||
|
dev.Read(), [0, 0, 0, 1, 0xbf, 0, 1, 6] + [0 for _ in range(56)])
|
||||||
|
dev.Write([0, 0, 0, 1, 0x81, 0, 3, 1, 2, 3])
|
||||||
|
- self.assertEquals(
|
||||||
|
+ self.assertEqual(
|
||||||
|
dev.Read(), [0, 0, 0, 1, 0xbf, 0, 1, 6] + [0 for _ in range(56)])
|
||||||
|
dev.Write([0, 0, 0, 1, 0x81, 0, 3, 1, 2, 3])
|
||||||
|
- self.assertEquals(
|
||||||
|
+ self.assertEqual(
|
||||||
|
dev.Read(), [0, 0, 0, 1, 0x81, 0, 3, 1, 2, 3] + [0
|
||||||
|
for _ in range(54)])
|
||||||
|
|
||||||
|
@@ -52,9 +52,9 @@ class UtilTest(unittest.TestCase):
|
||||||
|
msg_reply=list(range(85, 0, -1)))
|
||||||
|
dev.Write([0, 0, 0, 1, 0x83, 0, 100] + [x for x in range(57)])
|
||||||
|
dev.Write([0, 0, 0, 1, 0] + [x for x in range(57, 100)])
|
||||||
|
- self.assertEquals(
|
||||||
|
+ self.assertEqual(
|
||||||
|
dev.Read(), [0, 0, 0, 1, 0x83, 0, 85] + [x for x in range(85, 28, -1)])
|
||||||
|
- self.assertEquals(
|
||||||
|
+ self.assertEqual(
|
||||||
|
dev.Read(),
|
||||||
|
[0, 0, 0, 1, 0] + [x for x in range(28, 0, -1)] + [0
|
||||||
|
for _ in range(31)])
|
25
python312-2.patch
Normal file
25
python312-2.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
From 793acd9ff6612bb035f0724b04e10a01cdb5bb8d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Karthikeyan Singaravelan <tir.karthi@gmail.com>
|
||||||
|
Date: Fri, 15 Oct 2021 10:38:31 +0000
|
||||||
|
Subject: [PATCH] Use assertRaisesRegex instead of assertRaisesRegexp for
|
||||||
|
Python 3.11 compatibility.
|
||||||
|
|
||||||
|
---
|
||||||
|
pyu2f/tests/hidtransport_test.py | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
Index: pyu2f-0.1.5a/pyu2f/tests/hidtransport_test.py
|
||||||
|
===================================================================
|
||||||
|
--- pyu2f-0.1.5a.orig/pyu2f/tests/hidtransport_test.py
|
||||||
|
+++ pyu2f-0.1.5a/pyu2f/tests/hidtransport_test.py
|
||||||
|
@@ -128,8 +128,8 @@ class TransportTest(unittest.TestCase):
|
||||||
|
# the second will succeed on the second retry.
|
||||||
|
fake_hid_dev.SetChannelBusyCount(3)
|
||||||
|
with mock.patch.object(hidtransport, 'time') as _:
|
||||||
|
- self.assertRaisesRegexp(errors.HidError, '^Device Busy', t.SendMsgBytes,
|
||||||
|
- [0x00, 0x01, 0x00, 0x00])
|
||||||
|
+ self.assertRaisesRegex(errors.HidError, '^Device Busy', t.SendMsgBytes,
|
||||||
|
+ [0x00, 0x01, 0x00, 0x00])
|
||||||
|
|
||||||
|
reply = t.SendMsgBytes([0x00, 0x01, 0x00, 0x00])
|
||||||
|
self.assertEqual(reply, bytearray([0x01, 0x90, 0x00]))
|
BIN
pyu2f-0.1.5a.tar.gz
(Stored with Git LFS)
Normal file
BIN
pyu2f-0.1.5a.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user