Skip to content

Commit 29e9179

Browse files
Merge pull request #278 from theotherjimmy/none-target
Correct traceback caused by None "target_id"
2 parents 45e6345 + 3a75f89 commit 29e9179

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

mbed_lstools/lstools_base.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,10 @@ def _update_device_from_htm(self, device):
216216
device['target_id_usb_id'])
217217
device['target_id'] = device['target_id_usb_id']
218218
device['target_id_mbed_htm'] = htm_target_id
219-
device['platform_name'] = self.plat_db.get(device['target_id'][0:4])
219+
if device['target_id']:
220+
device['platform_name'] = self.plat_db.get(device['target_id'][0:4])
221+
else:
222+
device['platform_name'] = None
220223

221224
def mock_manufacture_id(self, mid, platform_name, oper='+'):
222225
"""! Replace (or add if manufacture id doesn't exist) entry in self.manufacture_ids

test/mbedls_toolsbase.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,27 @@ def test_list_mbeds_valid_platform(self):
6969
self.assertEqual(to_check[0]['target_id'], "0241BEEFDEAD")
7070
self.assertEqual(to_check[0]['platform_name'], 'foo_target')
7171

72+
def test_list_mbeds_invalid_tid(self):
73+
self.base.return_value = [{'mount_point': 'dummy_mount_point',
74+
'target_id_usb_id': u'0240DEADBEEF',
75+
'serial_port': "dummy_serial_port"},
76+
{'mount_point': 'dummy_mount_point',
77+
'target_id_usb_id': None,
78+
'serial_port': 'not_valid'}]
79+
with patch("mbed_lstools.lstools_base.MbedLsToolsBase._read_htm_ids") as _read_htm,\
80+
patch("mbed_lstools.lstools_base.MbedLsToolsBase.mount_point_ready") as _mpr,\
81+
patch("mbed_lstools.lstools_base.PlatformDatabase.get") as _get:
82+
_mpr.return_value = True
83+
_read_htm.side_effect = [(u'0241BEEFDEAD', {}), (None, {})]
84+
_get.return_value = 'foo_target'
85+
to_check = self.base.list_mbeds()
86+
_get.assert_called_once_with('0241')
87+
self.assertEqual(len(to_check), 2)
88+
self.assertEqual(to_check[0]['target_id'], "0241BEEFDEAD")
89+
self.assertEqual(to_check[0]['platform_name'], 'foo_target')
90+
self.assertEqual(to_check[1]['target_id'], None)
91+
self.assertEqual(to_check[1]['platform_name'], None)
92+
7293
def test_list_mbeds_invalid_platform(self):
7394
self.base.return_value = [{'mount_point': 'dummy_mount_point',
7495
'target_id_usb_id': u'not_in_target_db',

0 commit comments

Comments
 (0)