laforge has submitted this change. ( 
https://gerrit.osmocom.org/c/pysim/+/40824?usp=email )

 (

10 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the submitted 
one.
 )Change subject: personalization.ConfigurableParameter: fix BytesIO() input
......................................................................

personalization.ConfigurableParameter: fix BytesIO() input

Change-Id: I0ad160eef9015e76eef10baee7c6b606fe249123
Jenkins: skip-card-test
---
M pySim/esim/saip/personalization.py
M tests/unittests/test_configurable_parameters.py
M tests/unittests/xo/test_configurable_parameters
3 files changed, 43 insertions(+), 0 deletions(-)

Approvals:
  laforge: Looks good to me, approved
  Jenkins Builder: Verified




diff --git a/pySim/esim/saip/personalization.py 
b/pySim/esim/saip/personalization.py
index 54c8f26..c60a7c2 100644
--- a/pySim/esim/saip/personalization.py
+++ b/pySim/esim/saip/personalization.py
@@ -187,6 +187,9 @@
             if cls.allow_chars is not None:
                 if any(c not in cls.allow_chars for c in val):
                     raise ValueError(f"invalid characters in input value 
{val!r}, valid chars are {cls.allow_chars}")
+        elif isinstance(val, io.BytesIO):
+            val = val.getvalue()
+
         if cls.allow_len is not None:
             l = cls.allow_len
             # cls.allow_len could be one int, or a tuple of ints. Wrap a 
single int also in a tuple.
diff --git a/tests/unittests/test_configurable_parameters.py 
b/tests/unittests/test_configurable_parameters.py
index 3388753..5a8f9d3 100755
--- a/tests/unittests/test_configurable_parameters.py
+++ b/tests/unittests/test_configurable_parameters.py
@@ -144,6 +144,10 @@
                       
val=bytearray(b'\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16'),
                       
expect_clean_val=b'\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16',
                       expect_val='01020304050607080910111213141516'),
+            Paramtest(param_cls=p13n.K,
+                      
val=io.BytesIO(b'\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16'),
+                      
expect_clean_val=b'\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16',
+                      expect_val='01020304050607080910111213141516'),

             Paramtest(param_cls=p13n.Opc,
                       val='01020304050607080910111213141516',
@@ -157,6 +161,10 @@
                       
val=bytearray(b'\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16'),
                       
expect_clean_val=b'\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16',
                       expect_val='01020304050607080910111213141516'),
+            Paramtest(param_cls=p13n.Opc,
+                      
val=io.BytesIO(b'\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16'),
+                      
expect_clean_val=b'\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16',
+                      expect_val='01020304050607080910111213141516'),
             ]

         # SdKey classes don't make sense yet, will come in 
Ic92ddea6e1fad8167ea75baf78ffc3eb419838c4
diff --git a/tests/unittests/xo/test_configurable_parameters 
b/tests/unittests/xo/test_configurable_parameters
index 38b4f38..c16a2c8 100644
--- a/tests/unittests/xo/test_configurable_parameters
+++ b/tests/unittests/xo/test_configurable_parameters
@@ -71,6 +71,10 @@
        clean_val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
        read_back_val=  {'K': '01020304050607080910111213141516'}:{hexstr}

+ok: TS48v5_SAIP2.1A_NoBERTLV.der K(val=        
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':BytesIO)
+       clean_val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
+       read_back_val=  {'K': '01020304050607080910111213141516'}:{hexstr}
+
 ok: TS48v5_SAIP2.1A_NoBERTLV.der Opc(val=      
'01020304050607080910111213141516':str)
        clean_val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
        read_back_val=  {'OPc': '01020304050607080910111213141516'}:{hexstr}
@@ -83,6 +87,10 @@
        clean_val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
        read_back_val=  {'OPc': '01020304050607080910111213141516'}:{hexstr}

+ok: TS48v5_SAIP2.1A_NoBERTLV.der Opc(val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':BytesIO)
+       clean_val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
+       read_back_val=  {'OPc': '01020304050607080910111213141516'}:{hexstr}
+
 ok: TS48v5_SAIP2.3_BERTLV_SUCI.der Imsi(val=   '123456':str)
        clean_val=      '123456':str
        read_back_val=  {'IMSI': '123456', 'IMSI-ACC': '0040'}:{str, hexstr}
@@ -155,6 +163,10 @@
        clean_val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
        read_back_val=  {'K': '01020304050607080910111213141516'}:{hexstr}

+ok: TS48v5_SAIP2.3_BERTLV_SUCI.der K(val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':BytesIO)
+       clean_val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
+       read_back_val=  {'K': '01020304050607080910111213141516'}:{hexstr}
+
 ok: TS48v5_SAIP2.3_BERTLV_SUCI.der Opc(val=    
'01020304050607080910111213141516':str)
        clean_val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
        read_back_val=  {'OPc': '01020304050607080910111213141516'}:{hexstr}
@@ -167,6 +179,10 @@
        clean_val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
        read_back_val=  {'OPc': '01020304050607080910111213141516'}:{hexstr}

+ok: TS48v5_SAIP2.3_BERTLV_SUCI.der Opc(val=    
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':BytesIO)
+       clean_val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
+       read_back_val=  {'OPc': '01020304050607080910111213141516'}:{hexstr}
+
 ok: TS48v5_SAIP2.1B_NoBERTLV.der Imsi(val=     '123456':str)
        clean_val=      '123456':str
        read_back_val=  {'IMSI': '123456', 'IMSI-ACC': '0040'}:{str, hexstr}
@@ -239,6 +255,10 @@
        clean_val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
        read_back_val=  {'K': '01020304050607080910111213141516'}:{hexstr}

+ok: TS48v5_SAIP2.1B_NoBERTLV.der K(val=        
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':BytesIO)
+       clean_val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
+       read_back_val=  {'K': '01020304050607080910111213141516'}:{hexstr}
+
 ok: TS48v5_SAIP2.1B_NoBERTLV.der Opc(val=      
'01020304050607080910111213141516':str)
        clean_val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
        read_back_val=  {'OPc': '01020304050607080910111213141516'}:{hexstr}
@@ -251,6 +271,10 @@
        clean_val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
        read_back_val=  {'OPc': '01020304050607080910111213141516'}:{hexstr}

+ok: TS48v5_SAIP2.1B_NoBERTLV.der Opc(val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':BytesIO)
+       clean_val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
+       read_back_val=  {'OPc': '01020304050607080910111213141516'}:{hexstr}
+
 ok: TS48v5_SAIP2.3_NoBERTLV.der Imsi(val=      '123456':str)
        clean_val=      '123456':str
        read_back_val=  {'IMSI': '123456', 'IMSI-ACC': '0040'}:{str, hexstr}
@@ -323,6 +347,10 @@
        clean_val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
        read_back_val=  {'K': '01020304050607080910111213141516'}:{hexstr}

+ok: TS48v5_SAIP2.3_NoBERTLV.der K(val= 
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':BytesIO)
+       clean_val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
+       read_back_val=  {'K': '01020304050607080910111213141516'}:{hexstr}
+
 ok: TS48v5_SAIP2.3_NoBERTLV.der Opc(val=       
'01020304050607080910111213141516':str)
        clean_val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
        read_back_val=  {'OPc': '01020304050607080910111213141516'}:{hexstr}
@@ -334,3 +362,7 @@
 ok: TS48v5_SAIP2.3_NoBERTLV.der Opc(val=       
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytearray)
        clean_val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
        read_back_val=  {'OPc': '01020304050607080910111213141516'}:{hexstr}
+
+ok: TS48v5_SAIP2.3_NoBERTLV.der Opc(val=       
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':BytesIO)
+       clean_val=      
b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
+       read_back_val=  {'OPc': '01020304050607080910111213141516'}:{hexstr}

--
To view, visit https://gerrit.osmocom.org/c/pysim/+/40824?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I0ad160eef9015e76eef10baee7c6b606fe249123
Gerrit-Change-Number: 40824
Gerrit-PatchSet: 11
Gerrit-Owner: neels <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <[email protected]>

Reply via email to