<p>dexter has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/pysim/+/24003">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">utils: fix dec_xplmn_w_act() and format_xplmn_w_act()<br><br>The function dec_xplmn_w_act(), which is also used by<br>format_xplmn_w_act() is using integer numbers as MCC/MNC representation.<br>This causes various problems since the information about leading zeros<br>gets lost.<br><br>Change-Id: I57f7dff80f48071ef9a3732ae1088882b127a6d4<br>---<br>M pySim/utils.py<br>M tests/test_utils.py<br>2 files changed, 8 insertions(+), 8 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/03/24003/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/pySim/utils.py b/pySim/utils.py</span><br><span>index ac28624..00cbb5d 100644</span><br><span>--- a/pySim/utils.py</span><br><span>+++ b/pySim/utils.py</span><br><span>@@ -234,13 +234,13 @@</span><br><span>        return sel</span><br><span> </span><br><span> def dec_xplmn_w_act(fivehexbytes:Hexstr) -> Dict[str,Any]:</span><br><span style="color: hsl(0, 100%, 40%);">- res = {'mcc': 0, 'mnc': 0, 'act': []}</span><br><span style="color: hsl(120, 100%, 40%);">+ res = {'mcc': "0", 'mnc': "0", 'act': []}</span><br><span>        plmn_chars = 6</span><br><span>       act_chars = 4</span><br><span>        plmn_str = fivehexbytes[:plmn_chars]                            # first three bytes (six ascii hex chars)</span><br><span>    act_str = fivehexbytes[plmn_chars:plmn_chars + act_chars]       # two bytes after first three bytes</span><br><span style="color: hsl(0, 100%, 40%);">-     res['mcc'] = dec_mcc_from_plmn(plmn_str)</span><br><span style="color: hsl(0, 100%, 40%);">-        res['mnc'] = dec_mnc_from_plmn(plmn_str)</span><br><span style="color: hsl(120, 100%, 40%);">+      res['mcc'] = dec_mcc_from_plmn_str(plmn_str)</span><br><span style="color: hsl(120, 100%, 40%);">+  res['mnc'] = dec_mnc_from_plmn_str(plmn_str)</span><br><span>         res['act'] = dec_act(act_str)</span><br><span>        return res</span><br><span> </span><br><span>@@ -248,10 +248,10 @@</span><br><span>       s = ""</span><br><span>     for rec_data in hexstr_to_Nbytearr(hexstr, 5):</span><br><span>               rec_info = dec_xplmn_w_act(rec_data)</span><br><span style="color: hsl(0, 100%, 40%);">-            if rec_info['mcc'] == 0xFFF and rec_info['mnc'] == 0xFFF:</span><br><span style="color: hsl(120, 100%, 40%);">+             if rec_info['mcc'] == "" and rec_info['mnc'] == "":</span><br><span>                      rec_str = "unused"</span><br><span>                 else:</span><br><span style="color: hsl(0, 100%, 40%);">-                   rec_str = "MCC: %03d MNC: %03d AcT: %s" % (rec_info['mcc'], rec_info['mnc'], ", ".join(rec_info['act']))</span><br><span style="color: hsl(120, 100%, 40%);">+                  rec_str = "MCC: %s MNC: %s AcT: %s" % (rec_info['mcc'], rec_info['mnc'], ", ".join(rec_info['act']))</span><br><span>             s += "\t%s # %s\n" % (rec_data, rec_str)</span><br><span>   return s</span><br><span> </span><br><span>diff --git a/tests/test_utils.py b/tests/test_utils.py</span><br><span>index b70b17b..558b5e7 100755</span><br><span>--- a/tests/test_utils.py</span><br><span>+++ b/tests/test_utils.py</span><br><span>@@ -96,13 +96,13 @@</span><br><span>          self.assertEqual(utils.dec_act("ffff"), ["UTRAN", "E-UTRAN", "GSM", "GSM COMPACT", "cdma2000 HRPD", "cdma2000 1xRTT"])</span><br><span> </span><br><span>     def testDecxPlmn_w_act(self):</span><br><span style="color: hsl(0, 100%, 40%);">-           expected = {'mcc': 295, 'mnc': 10, 'act': ["UTRAN"]}</span><br><span style="color: hsl(120, 100%, 40%);">+                expected = {'mcc': '295', 'mnc': '10', 'act': ["UTRAN"]}</span><br><span>           self.assertEqual(utils.dec_xplmn_w_act("92f5018000"), expected)</span><br><span> </span><br><span>        def testFormatxPlmn_w_act(self):</span><br><span>             input_str = "92f501800092f5508000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000"</span><br><span style="color: hsl(0, 100%, 40%);">-            expected  = "\t92f5018000 # MCC: 295 MNC: 010 AcT: UTRAN\n"</span><br><span style="color: hsl(0, 100%, 40%);">-           expected += "\t92f5508000 # MCC: 295 MNC: 005 AcT: UTRAN\n"</span><br><span style="color: hsl(120, 100%, 40%);">+         expected  = "\t92f5018000 # MCC: 295 MNC: 10 AcT: UTRAN\n"</span><br><span style="color: hsl(120, 100%, 40%);">+          expected += "\t92f5508000 # MCC: 295 MNC: 05 AcT: UTRAN\n"</span><br><span>                 expected += "\tffffff0000 # unused\n"</span><br><span>              expected += "\tffffff0000 # unused\n"</span><br><span>              expected += "\tffffff0000 # unused\n"</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/pysim/+/24003">change 24003</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/pysim/+/24003"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: pysim </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I57f7dff80f48071ef9a3732ae1088882b127a6d4 </div>
<div style="display:none"> Gerrit-Change-Number: 24003 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>