dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/41448?usp=email )
Change subject: card_key_provider: add unit-test ......................................................................
card_key_provider: add unit-test
There is no unit-test for the CardKeyProviderCsv class yet. Let's add one to ensure that the CardKeyProviderCsv class keeps working as expected.
Related: SYS#7725 Change-Id: I52519847a4c4a13a7bca49985133872b01c4aaab --- A tests/unittests/test_card_key_provider.csv A tests/unittests/test_card_key_provider.py 2 files changed, 89 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/48/41448/1
diff --git a/tests/unittests/test_card_key_provider.csv b/tests/unittests/test_card_key_provider.csv new file mode 100644 index 0000000..a9fdf57 --- /dev/null +++ b/tests/unittests/test_card_key_provider.csv @@ -0,0 +1,5 @@ +"card_type_id","formfactor_id","imsi","iccid","pin1","puk1","pin2","puk2","ki","adm1","adm2","proprietary","kic1","kic2","kic3","kid1","kid2","kid3","kik1","kik2","kik3","msisdn","acc","opc" +"myCardType","3FF","901700000000001","8988211000000000001","1234","12345678","1223","12345678","AAAAAAAAAAA5435425AAAAAAAAAAAAAA","10101010","9999999999999999","proprietary data 01","BBBBBBBBBB3324BBBBBBBB21212BBBBB","CC7654CCCCCCCCCCCCCCCCCCCCCCCCCC","DDDD90DDDDDDDDDDDDDDDDDD767DDDDD","EEEEEE567657567567EEEEEEEEEEEEEE","FFFFFFFFFFFFFFFFFFF56765765FFFFF","11111567811111111111111111111111","22222222222222222227669999222222","33333333333333333333333333333333","44444444444444445234544444444444","55555555555","0001","66666666666666666666666666666666" +"myCardType","3FF","901700000000002","8988211000000000002","1234","12345678","1223","12345678","AAAAAAAAAAAAAAAAAAAAAAAA3425AAAA","10101010","9999999999999999","proprietary data 02","BBBBBB421BBBBBBBBBB12BBBBBBBBBBB","CCCCCCCCCC3456CCCCCCCCCCCCCCCCCC","DDDDDDDDD567657DDDD2DDDDDDDDDDDD","EEEEEEEE56756EEEEEEEEE567657EEEE","FFFFF567657FFFFFFFFFFFFFFFFFFFFF","11111111111146113433411576511111","22222222222223432225765222222222","33333333333333523453333333333333","44425435234444444444446544444444","55555555555","0001","66666666666666266666666666666666" +"myCardType","3FF","901700000000003","8988211000000000003","1234","12345678","1223","12345678","AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA","10101010","9999999999999999","proprietary data 03","BBBBBBB45678BBBB756765BBBBBBBBBB","CCCCCCCCCCCCCC76543CCCC56765CCCC","DDDDDDDDDDDDDDDDDD5676575DDDDDDD","EEEEEEEEEEEEEEEEEE56765EEEEEEEEE","FFFFFFFFFFFFFFF567657FFFFFFFFFFF","11111111119876511111111111111111","22222222222444422222222222576522","33333332543333576733333333333333","44444444444567657567444444444444","55555555555","0001","66666675676575666666666666666666" + diff --git a/tests/unittests/test_card_key_provider.py b/tests/unittests/test_card_key_provider.py new file mode 100644 index 0000000..2897a05 --- /dev/null +++ b/tests/unittests/test_card_key_provider.py @@ -0,0 +1,84 @@ +#!/usr/bin/env python3 + +import unittest +import os +from pySim.card_key_provider import * + +class TestCardKeyProvider(unittest.TestCase): + + def __init__(self, *args, **kwargs): + column_keys = {"KI" : "000424252525535532532A0B0C0D0E0F", + "OPC" : "000102030405065545645645645D0E0F", + "KIC1" : "06410203546406456456450B0C0D0E0F", + "KID1" : "00040267840507667609045645645E0F", + "KIK1" : "0001020307687607668678678C0D0E0F", + "KIC2" : "000142457594860706090A0B0688678F", + "KID2" : "600102030405649468690A0B0C0D648F", + "KIK2" : "00010203330506070496330B08640E0F", + "KIC3" : "000104030405064684686A068C0D0E0F", + "KID3" : "00010243048468070809060B0C0D0E0F", + "KIK3" : "00010204040506070809488B0C0D0E0F"} + + csv_file_path = os.path.dirname(os.path.abspath(__file__)) + "/test_card_key_provider.csv" + card_key_provider_register(CardKeyProviderCsv(csv_file_path, column_keys)) + super(TestCardKeyProvider, self).__init__(*args, **kwargs) + + def test_card_key_provider_get(self): + test_data = [{'EXPECTED' : {'PIN1': '1234', 'PUK1': '12345678', 'PIN2': '1223', 'PUK2': '12345678', + 'KI': '48a6d5f60567d45299e3ba08594009e7', 'ADM1': '10101010', + 'ADM2': '9999999999999999', 'KIC1': '3eb8567fa0b4b1e63bcab13bff5f2702', + 'KIC2': 'fd6c173a5b3f04b563808da24237fb46', + 'KIC3': '66c8c848e5dff69d70689d155d44f323', + 'KID1': 'd78accce870332dced467c173244dd94', + 'KID2': 'b3bf050969747b2d2c9389e127a3d791', + 'KID3': '40a77deb50d260b3041bbde1b5040625', + 'KIK1': '451b503239d818ea34421aa9c2a8887a', + 'KIK2': '967716f5fca8ae179f87f76524d1ae6b', + 'KIK3': '0884db5eee5409a00fc1bbc57ac52541', + 'OPC': '81817574c1961dd272ad080eb2caf279'}, 'ICCID' :"8988211000000000001"}, + {'EXPECTED' : {'PIN1': '1234', 'PUK1': '12345678', 'PIN2': '1223', 'PUK2': '12345678', + 'KI': 'e94d7fa6fb92375dae86744ff6ecef49', 'ADM1': '10101010', + 'ADM2': '9999999999999999', 'KIC1': '79b4e39387c66253da68f653381ded44', + 'KIC2': '560561b5dba89c1da8d1920049e5e4f7', + 'KIC3': '79ff35e84e39305a119af8c79f84e8e5', + 'KID1': '233baf89122159553d67545ecedcf8e0', + 'KID2': '8fc2874164d7a8e40d72c968bc894ab8', + 'KID3': '2e3320f0dda85054d261be920fbfa065', + 'KIK1': 'd51b1b17630103d1672a3e9e0e4827ed', + 'KIK2': 'd01edbc48be555139506b0d7982bf7ff', + 'KIK3': 'a6487a5170849e8e0a03026afea91f5a', + 'OPC': '6b0d19ef28bd12f2daac31828d426939'}, 'ICCID' :"8988211000000000002"}, + {'EXPECTED' : {'PIN1': '1234', 'PUK1': '12345678', 'PIN2': '1223', 'PUK2': '12345678', + 'KI': '3cdec1552ef433a89f327905213c5a6e', 'ADM1': '10101010', + 'ADM2': '9999999999999999', 'KIC1': '72986b13ce505e12653ad42df5cfca13', + 'KIC2': '8f0d1e58b01e833773e5562c4940674d', + 'KIC3': '9c72ba5a14d54f489edbffd3d8802f03', + 'KID1': 'd23a42995df9ca83f74b2cfd22695526', + 'KID2': '5c3a189d12aa1ac6614883d7de5e6c8c', + 'KID3': 'a6ace0d303a2b38a96b418ab83c16725', + 'KIK1': 'bf2319467d859c12527aa598430caef2', + 'KIK2': '6a4c459934bea7e40787976b8881ab01', + 'KIK3': '91cd02c38b5f68a98cc90a1f2299538f', + 'OPC': '6df46814b1697daca003da23808bbbc3'}, 'ICCID' :"8988211000000000003"}] + + for t in test_data: + result = card_key_provider_get(["PIN1","PUK1","PIN2","PUK2","KI","ADM1","ADM2","KIC1", + "KIC2","KIC3","KID1","KID2","KID3","KIK1","KIK2","KIK3","OPC"], + "ICCID", t.get('ICCID')) + if result != t.get('EXPECTED'): + print("\nexpected: ", t.get('EXPECTED'), " for ICCID:", t.get('ICCID'), "\ngot:", result) + self.assertTrue(False) + + def test_card_key_provider_get_field(self): + test_data = [{'EXPECTED' : "3eb8567fa0b4b1e63bcab13bff5f2702", 'ICCID' :"8988211000000000001"}, + {'EXPECTED' : "79b4e39387c66253da68f653381ded44", 'ICCID' :"8988211000000000002"}, + {'EXPECTED' : "72986b13ce505e12653ad42df5cfca13", 'ICCID' :"8988211000000000003"}] + + for t in test_data: + result = card_key_provider_get_field("KIC1", "ICCID", t.get('ICCID')) + if result != t.get('EXPECTED'): + print("\nexpected: ", t.get('EXPECTED'), " for ICCID:", t.get('ICCID'), "\ngot:", result) + self.assertTrue(False) + +if __name__ == "__main__": + unittest.main()