tests/ update
authorNIIBE Yutaka <gniibe@fsij.org>
Thu, 13 Oct 2016 01:04:27 +0000 (10:04 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Thu, 13 Oct 2016 01:04:27 +0000 (10:04 +0900)
tests/README
tests/card_reader.py
tests/conftest.py
tests/test_empty_card.py
tests/test_personalize_reset_card.py

index 204d68c..e51c643 100644 (file)
@@ -7,28 +7,3 @@ You need to install:
 Please run test by typing:
 
     $ py.test-3 -x
-
-test_empty_card.py
-000
-001
-002
-
-010
-020
-021
-030
-040
-100
-101
-200
-201
-202
-203
-210
-211
-370
-380
-490
-
-
-003
index 1e38fb8..91a0ae6 100644 (file)
@@ -326,5 +326,4 @@ def get_ccid_device():
         atr = ccid.ccid_power_on()
     else:
         raise ValueError("Unknown CCID status", status)
-    print(atr)
     return ccid
index 7b85ecf..ddb9221 100644 (file)
@@ -8,7 +8,10 @@ def pytest_addoption(parser):
 
 @pytest.fixture(scope="session")
 def card():
+    print()
+    print("Test start!")
     reader = get_ccid_device()
+    print("Reader:", reader.get_string(1), reader.get_string(2))
     card = OpenPGP_Card(reader)
     card.cmd_select_openpgp()
     yield card
index a9fd615..f70e7c0 100644 (file)
@@ -20,7 +20,9 @@ You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 """
 
+from binascii import hexlify
 from re import match, DOTALL
+from struct import pack
 from util import *
 
 EMPTY_60=bytes(60)
@@ -32,6 +34,7 @@ def test_login(card):
     login = get_data_object(card, 0x5e)
     assert check_null(login)
 
+"""
 def test_name(card):
     name = get_data_object(card, 0x5b)
     assert check_null(name)
@@ -43,6 +46,17 @@ def test_lang(card):
 def test_sex(card):
     sex = get_data_object(card, 0x5f35)
     assert check_null(sex)
+"""
+
+def test_name_lang_sex(card):
+    name = b""
+    lang = b""
+    sex = b"9"
+    expected = b'\x5b' + pack('B', len(name)) + name \
+               +  b'\x5f\x2d' + pack('B', len(lang)) + lang \
+               + b'\x5f\x35' + pack('B', len(sex)) + sex
+    name_lang_sex = get_data_object(card, 0x65)
+    assert name_lang_sex == b'' or name_lang_sex == expected
 
 def test_url(card):
     url = get_data_object(card, 0x5f50)
@@ -139,4 +153,8 @@ def test_algorithm_attributes_3(card):
 
 def test_AID(card):
     a = get_data_object(card, 0x4f)
-    assert match(b'\xd2\x76\x00\x01\\$\x01\x02\x00......\x00\x00', a, DOTALL)
+    print()
+    print("OpenPGP card version: %d.%d" % (a[6], a[7]))
+    print("Card Manufacturer:  ", hexlify(a[8:10]).decode("UTF-8"))
+    print("Card serial:    ", hexlify(a[10:14]).decode("UTF-8"))
+    assert match(b'\xd2\x76\x00\x01\\$\x01........\x00\x00', a, DOTALL)
index 6a1b91f..fda9b0c 100644 (file)
@@ -50,8 +50,11 @@ def test_lang_put(card):
     assert r
 
 def test_sex_put(card):
-    r = card.cmd_put_data(0x5f, 0x35, b"9")
-    # r = card.cmd_put_data(0x5f, 0x35, b"")
+    try:
+        # Gnuk
+        r = card.cmd_put_data(0x5f, 0x35, b"")
+    except ValueError:
+        r = card.cmd_put_data(0x5f, 0x35, b"9")
     assert r
 
 def test_url_put(card):