From a8d6443df31684da561404199905ae1dcc3fded2 Mon Sep 17 00:00:00 2001 From: Awais Jibran Date: Wed, 27 Jun 2018 17:54:39 +0500 Subject: [PATCH] Do not update correctmap if state is invaid. --- common/lib/capa/capa/correctmap.py | 5 ++++- common/lib/capa/capa/tests/test_correctmap.py | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/common/lib/capa/capa/correctmap.py b/common/lib/capa/capa/correctmap.py index 6adf47832c..096f28257b 100644 --- a/common/lib/capa/capa/correctmap.py +++ b/common/lib/capa/capa/correctmap.py @@ -91,8 +91,11 @@ class CorrectMap(object): # empty current dict self.__init__() + if not correct_map: + return + # create new dict entries - if correct_map and not isinstance(correct_map.values()[0], dict): + if not isinstance(correct_map.values()[0], dict): # special migration for k in correct_map: self.set(k, correctness=correct_map[k]) diff --git a/common/lib/capa/capa/tests/test_correctmap.py b/common/lib/capa/capa/tests/test_correctmap.py index 168351aa9d..4ebd1866c3 100644 --- a/common/lib/capa/capa/tests/test_correctmap.py +++ b/common/lib/capa/capa/tests/test_correctmap.py @@ -215,3 +215,13 @@ class CorrectMapTest(unittest.TestCase): for invalid in invalid_list: with self.assertRaises(Exception): self.cmap.update(invalid) + + def test_set_none_state(self): + """ + Test that if an invalid state is set to correct map, the state does not + update at all. + """ + invalid_list = [None, "", False, 0] + for invalid in invalid_list: + self.cmap.set_dict(invalid) + self.assertEqual(self.cmap.get_dict(), {})