Skip to content

Commit 240efff

Browse files
committed
Get greentea tests working
1 parent e8ba963 commit 240efff

File tree

2 files changed

+16
-175
lines changed

2 files changed

+16
-175
lines changed

legacy/mbed-greentea/test/mbed_gt_greentea_dlm.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,26 @@
2323
from mock import patch
2424
from mbed_greentea import mbed_greentea_dlm
2525

26-
home_dir = tempfile.mkdtemp()
27-
mbed_greentea_dlm.HOME_DIR = home_dir
28-
mbed_greentea_dlm.GREENTEA_HOME_DIR = ".mbed-greentea"
29-
mbed_greentea_dlm.GREENTEA_GLOBAL_LOCK = "glock.lock"
30-
mbed_greentea_dlm.GREENTEA_KETTLE = "kettle.json" # active Greentea instances
31-
mbed_greentea_dlm.GREENTEA_KETTLE_PATH = os.path.join(mbed_greentea_dlm.HOME_DIR, mbed_greentea_dlm.GREENTEA_HOME_DIR, mbed_greentea_dlm.GREENTEA_KETTLE)
32-
3326

3427
class GreenteaDlmFunctionality(unittest.TestCase):
3528
def setUp(self):
36-
pass
29+
temp_dir = tempfile.mkdtemp()
30+
self.home_tools_patch = patch('mbed_os_tools.test.mbed_greentea_dlm.HOME_DIR', temp_dir)
31+
self.home_local_patch = patch('mbed_greentea.mbed_greentea_dlm.HOME_DIR', temp_dir)
32+
kettle_dir = os.path.join(temp_dir, mbed_greentea_dlm.GREENTEA_HOME_DIR, mbed_greentea_dlm.GREENTEA_KETTLE)
33+
self.kettle_tools_patch = patch('mbed_os_tools.test.mbed_greentea_dlm.GREENTEA_KETTLE_PATH', kettle_dir)
34+
self.kettle_local_patch = patch('mbed_greentea.mbed_greentea_dlm.GREENTEA_KETTLE_PATH', kettle_dir)
35+
36+
self.home_tools_patch.start()
37+
self.home_local_patch.start()
38+
self.kettle_tools_patch.start()
39+
self.kettle_local_patch.start()
3740

3841
def tearDown(self):
39-
pass
42+
self.home_tools_patch.stop()
43+
self.home_local_patch.stop()
44+
self.kettle_tools_patch.stop()
45+
self.kettle_local_patch.stop()
4046

4147
def test_greentea_home_dir_init(self):
4248
mbed_greentea_dlm.greentea_home_dir_init()

legacy/mbed-greentea/test/mbed_gt_target_info.py

Lines changed: 1 addition & 166 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ def test_parse_mbed_target_from_target_json_multiple(self):
261261
self.assertNotEqual('frdm-k64f-gcc', mbed_target_info.parse_mbed_target_from_target_json('K64F', target_json_data))
262262
self.assertNotEqual('frdm-k64f-gcc', mbed_target_info.parse_mbed_target_from_target_json('FRDM-K64F', target_json_data))
263263

264-
@patch('mbed_greentea.mbed_target_info.get_mbed_target_call_yotta_target')
264+
@patch('mbed_os_tools.test.mbed_target_info.get_mbed_target_call_yotta_target')
265265
def test_get_mbed_target_from_current_dir_ok(self, callYtTarget_mock):
266266

267267
yotta_target_cmd = """frdm-k64f-gcc 2.0.0
@@ -365,171 +365,6 @@ def test_parse_mbed_target_from_target_json_missing_name(self):
365365
def test_parse_add_target_info_mapping(self):
366366
result = mbed_target_info.add_target_info_mapping("null")
367367

368-
369-
def test_get_platform_property_from_targets_no_json(self):
370-
with patch("mbed_greentea.mbed_target_info._find_targets_json") as _find:
371-
_find.return_value = iter([])
372-
result = mbed_target_info._get_platform_property_from_targets("not_a_platform", "not_a_property", "default")
373-
self.assertIsNone(result)
374-
375-
def test_get_platform_property_from_targets_no_file(self):
376-
with patch("mbed_greentea.mbed_target_info._find_targets_json") as _find,\
377-
patch("mbed_greentea.mbed_target_info.open") as _open:
378-
_find.return_value = iter(["foo"])
379-
_open.side_effect = IOError
380-
result = mbed_target_info._get_platform_property_from_targets("not_a_platform", "not_a_property", "default")
381-
self.assertIsNone(result)
382-
383-
def test_get_platform_property_from_targets_invalid_json(self):
384-
with patch("mbed_greentea.mbed_target_info._find_targets_json") as _find,\
385-
patch("mbed_greentea.mbed_target_info.open") as _open:
386-
_find.return_value = iter(["foo"])
387-
_open.return_value.__enter__.return_value = StringIO("{")
388-
result = mbed_target_info._get_platform_property_from_targets("not_a_platform", "not_a_property", "default")
389-
self.assertIsNone(result)
390-
391-
def test_get_platform_property_from_targets_empty_json(self):
392-
with patch("mbed_greentea.mbed_target_info._find_targets_json") as _find,\
393-
patch("mbed_greentea.mbed_target_info.open") as _open:
394-
_find.return_value = iter(["foo"])
395-
_open.return_value.__enter__.return_value = StringIO("{}")
396-
result = mbed_target_info._get_platform_property_from_targets("not_a_platform", "not_a_property", "default")
397-
self.assertIsNone(result)
398-
399-
def test_get_platform_property_from_targets_no_value(self):
400-
with patch("mbed_greentea.mbed_target_info._find_targets_json") as _find,\
401-
patch("mbed_greentea.mbed_target_info.open") as _open:
402-
_find.return_value = iter(["foo"])
403-
_open.return_value.__enter__.return_value = StringIO("{\"K64F\": {}}")
404-
result = mbed_target_info._get_platform_property_from_targets("K64F", "not_a_property", "default")
405-
self.assertEqual(result, "default")
406-
407-
def test_get_platform_property_from_targets_in_json(self):
408-
with patch("mbed_greentea.mbed_target_info._find_targets_json") as _find,\
409-
patch("mbed_greentea.mbed_target_info.open") as _open:
410-
_find.return_value = iter(["foo"])
411-
_open.return_value.__enter__.return_value = StringIO("{\"K64F\": {\"copy_method\": \"cp\"}}")
412-
result = mbed_target_info._get_platform_property_from_targets("K64F", "copy_method", "default")
413-
self.assertEqual("cp", result)
414-
415-
def test_find_targets_json(self):
416-
with patch("mbed_greentea.mbed_target_info.walk") as _walk:
417-
_walk.return_value = iter([("", ["foo"], []), ("foo", [], ["targets.json"])])
418-
result = list(mbed_target_info._find_targets_json("bogus_path"))
419-
self.assertEqual(result, [os.path.join("foo", "targets.json")])
420-
421-
def test_find_targets_json_ignored(self):
422-
with patch("mbed_greentea.mbed_target_info.walk") as _walk:
423-
walk_result =[("", [".build"], [])]
424-
_walk.return_value = iter(walk_result)
425-
result = list(mbed_target_info._find_targets_json("bogus_path"))
426-
self.assertEqual(result, [])
427-
self.assertEqual(walk_result, [("", [], [])])
428-
429-
def test_platform_property_from_targets_json_empty(self):
430-
result = mbed_target_info._platform_property_from_targets_json(
431-
{}, "not_a_target", "not_a_property", "default"
432-
)
433-
self.assertIsNone(result)
434-
435-
def test_platform_property_from_targets_json_base_target(self):
436-
result = mbed_target_info._platform_property_from_targets_json(
437-
{"K64F": {"copy_method": "cp"}}, "K64F", "copy_method", "default"
438-
)
439-
self.assertEqual(result, "cp")
440-
441-
def test_platform_property_from_targets_json_inherits(self):
442-
result = mbed_target_info._platform_property_from_targets_json(
443-
{"K64F": {"inherits": ["Target"]}, "Target": {"copy_method": "cp"}},
444-
"K64F", "copy_method", "default"
445-
)
446-
self.assertEqual(result, "cp")
447-
448-
def test_platform_property_from_default_missing(self):
449-
result = mbed_target_info._get_platform_property_from_default("not_a_property")
450-
self.assertIsNone(result)
451-
452-
def test_platform_property_from_default(self):
453-
result = mbed_target_info._get_platform_property_from_default("copy_method")
454-
self.assertEqual(result, "default")
455-
456-
def test_platform_property_from_info_mapping_bad_platform(self):
457-
result = mbed_target_info._get_platform_property_from_info_mapping("not_a_platform", "not_a_property")
458-
self.assertIsNone(result)
459-
460-
def test_platform_property_from_info_mapping_missing(self):
461-
result = mbed_target_info._get_platform_property_from_info_mapping("K64F", "not_a_property")
462-
self.assertIsNone(result)
463-
464-
def test_platform_property_from_info_mapping(self):
465-
result = mbed_target_info._get_platform_property_from_info_mapping("K64F", "copy_method")
466-
self.assertEqual(result, "default")
467-
468-
469-
# The following test cases are taken from this table:
470-
#
471-
# Num | In targets.json | In yotta blob | In Default | property used
472-
# --- | --------------- | ------------- | ---------- | --------------
473-
# 1 | Yes | No | Yes |`targets.json`
474-
# 2 | Yes | Yes | Yes |`targets.json`
475-
# 3 | No | Yes | Yes | yotta blob
476-
# 4 | No | No | Yes | default
477-
# 5 | No | No | No | None
478-
# 6 | Yes | No | No |`targets.json`
479-
# 7 | Yes | Yes | No |`targets.json`
480-
# 8 | No | Yes | No | yotta blob
481-
def test_platform_property(self):
482-
"""Test that platform_property picks the property value preserving
483-
the following priority relationship:
484-
targets.json > yotta blob > default
485-
"""
486-
with patch("mbed_greentea.mbed_target_info._get_platform_property_from_targets") as _targets,\
487-
patch("mbed_greentea.mbed_target_info._get_platform_property_from_info_mapping") as _info_mapping,\
488-
patch("mbed_greentea.mbed_target_info._get_platform_property_from_default") as _default:
489-
# 1
490-
_targets.return_value = "targets"
491-
_info_mapping.return_value = None
492-
_default.return_value = "default"
493-
self.assertEqual(
494-
mbed_target_info.get_platform_property("K64F", "copy_method"),
495-
"targets")
496-
# 2
497-
_info_mapping.return_value = "yotta"
498-
self.assertEqual(
499-
mbed_target_info.get_platform_property("K64F", "copy_method"),
500-
"targets")
501-
# 3
502-
_targets.return_value = None
503-
self.assertEqual(
504-
mbed_target_info.get_platform_property("K64F", "copy_method"),
505-
"yotta")
506-
# 4
507-
_info_mapping.return_value = None
508-
self.assertEqual(
509-
mbed_target_info.get_platform_property("K64F", "copy_method"),
510-
"default")
511-
# 5
512-
_default.return_value = None
513-
self.assertEqual(
514-
mbed_target_info.get_platform_property("K64F", "copy_method"),
515-
None)
516-
# 6
517-
_targets.return_value = "targets"
518-
self.assertEqual(
519-
mbed_target_info.get_platform_property("K64F", "copy_method"),
520-
"targets")
521-
# 7
522-
_info_mapping.return_value = "yotta"
523-
self.assertEqual(
524-
mbed_target_info.get_platform_property("K64F", "copy_method"),
525-
"targets")
526-
# 8
527-
_targets.return_value = None
528-
self.assertEqual(
529-
mbed_target_info.get_platform_property("K64F", "copy_method"),
530-
"yotta")
531-
532-
533368
def test_parse_yotta_json_for_build_name(self):
534369
self.assertEqual("", mbed_target_info.parse_yotta_json_for_build_name(
535370
{

0 commit comments

Comments
 (0)