def test_routine_deserialize_wrong_format(self): r = des.deserialize_routine({}, self.manager) self.assertIsNone(r) r = des.deserialize_routine({"name": 5, "tasks": []}, self.manager) self.assertIsNone(r) r = des.deserialize_routine({ "name": "ok", "tasks": None }, self.manager) self.assertIsNone(r) # noinspection PyTypeChecker r = des.deserialize_routine("An other type", self.manager) self.assertIsNone(r)
def test_routine_deserialize_wrong_format_task(self): serialized_routine = { "name": "A simple routine", "tasks": [{ "missing name": "a non existing task", "values": { "first arg": "my string" } }] } r = des.deserialize_routine(serialized_routine, self.manager) self.assertIsNotNone(r) self.assertEqual(len(r.tasks), 0) serialized_routine = { "name": "A simple routine", "tasks": [{ "name": ["Not", "a", "string"], "values": { "first arg": "my string" } }] } r = des.deserialize_routine(serialized_routine, self.manager) self.assertIsNotNone(r) self.assertEqual(len(r.tasks), 0) serialized_routine = { "name": "A simple routine", "tasks": [{ "name": "a task", "values": "not a dict" }] } r = des.deserialize_routine(serialized_routine, self.manager) self.assertIsNotNone(r) self.assertEqual(len(r.tasks), 0)
def test_routine_deserialize_missing_arg_value(self): serialized_routine = { "name": "A simple routine", "tasks": [{ "name": "a task", "values": {} }] } r = des.deserialize_routine(serialized_routine, self.manager) self.assertIsNotNone(r) self.assertEqual(len(r.tasks), 0)
def test_routine_deserialize_invalid_value(self): serialized_routine = { "name": "A simple routine", "tasks": [{ "name": "a task", "values": { "first arg": "bad" } }] } r = des.deserialize_routine(serialized_routine, self.manager) self.assertIsNotNone(r) self.assertEqual(len(r.tasks), 0)
def test_routine_deserialize_missing_task(self): serialized_routine = { "name": "A simple routine", "tasks": [{ "name": "a non existing task", "values": { "first arg": "my string" } }] } r = des.deserialize_routine(serialized_routine, self.manager) self.assertIsNotNone(r) self.assertEqual(len(r.tasks), 0)
def test_routine_deserialize(self): serialized_routine = { "name": "A simple routine", "tasks": [{ "name": "a task", "values": { "first arg": "my string" } }] } r = des.deserialize_routine(serialized_routine, self.manager) self.assertIsNotNone(r) self.assertEqual(r.name, "A simple routine") self.assertEqual(len(r.tasks), 1) t, values = r.tasks[0] self.assertEqual(self.t, t) self.assertDictEqual(values, {"first arg": "my string"})
def load_manager(): try: with open("manager_store.json", "r") as file: output = json.loads(file.read()) if "routines" in output and type( output["routines"]) is list: for serialized_routine in output["routines"]: r = des.deserialize_routine( serialized_routine, self.manager) if r is not None: self.manager.add_routine(r) if "cards" in output and type(output["cards"]) is list: for serialized_card in output["cards"]: c = des.deserialize_card(serialized_card, self.manager) if c is not None: self.manager.add_card(c) except FileNotFoundError: pass