tests/ update

This commit is contained in:
NIIBE Yutaka 2016-10-13 10:04:27 +09:00
parent 3c91dce8b7
commit b00bab8dbf
5 changed files with 27 additions and 29 deletions

View 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

View 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

View 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

View 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)

View 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):