{"action":"opened","issue":{"url":"https://api.github.com/repos/Cal-CS-61A-Staff/ok-client/issues/150","labels_url":"https://api.github.com/repos/Cal-CS-61A-Staff/ok-client/issues/150/labels{/name}","comments_url":"https://api.github.com/repos/Cal-CS-61A-Staff/ok-client/issues/150/comments","events_url":"https://api.github.com/repos/Cal-CS-61A-Staff/ok-client/issues/150/events","html_url":"https://github.com/Cal-CS-61A-Staff/ok-client/issues/150","id":127570896,"number":150,"title":"API error when loading an assignment twice","user":{"login":"papajohn","id":320145,"avatar_url":"https://avatars.githubusercontent.com/u/320145?v=3","gravatar_id":"","url":"https://api.github.com/users/papajohn","html_url":"https://github.com/papajohn","followers_url":"https://api.github.com/users/papajohn/followers","following_url":"https://api.github.com/users/papajohn/following{/other_user}","gists_url":"https://api.github.com/users/papajohn/gists{/gist_id}","starred_url":"https://api.github.com/users/papajohn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/papajohn/subscriptions","organizations_url":"https://api.github.com/users/papajohn/orgs","repos_url":"https://api.github.com/users/papajohn/repos","events_url":"https://api.github.com/users/papajohn/events{/privacy}","received_events_url":"https://api.github.com/users/papajohn/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-01-20T00:07:28Z","updated_at":"2016-01-20T00:07:28Z","closed_at":null,"body":"Loading an assignment using the new client API works great the first time. If I execute `load_assignment('lab01.ok')` a second time, then I get the following traceback.\r\n\r\nTests are ok files are all here: https://github.com/data-8/data8assets/tree/gh-pages/labs/lab01\r\n\r\n```\r\n---------------------------------------------------------------------------\r\nSerializeException                        Traceback (most recent call last)\r\n/opt/conda/lib/python3.4/site-packages/client/sources/ok_test/__init__.py in load(file, parameter, assign)\r\n     46                                     assign.cmd_args.interactive,\r\n---> 47                                     assign.cmd_args.timeout, **test)}\r\n     48     except ex.SerializeException:\r\n\r\n/opt/conda/lib/python3.4/site-packages/client/sources/common/core.py in __call__(cls, *args, **kargs)\r\n    186                                 'argument {}'.format(attr))\r\n--> 187         obj.post_instantiation()\r\n    188         return obj\r\n\r\n/opt/conda/lib/python3.4/site-packages/client/sources/ok_test/models.py in post_instantiation(self)\r\n     27             if not isinstance(suite, dict):\r\n---> 28                 raise ex.SerializeException('Test cases must be dictionaries')\r\n     29             elif 'type' not in suite:\r\n\r\nSerializeException: Test cases must be dictionaries\r\n\r\nDuring handling of the above exception, another exception occurred:\r\n\r\nLoadingException                          Traceback (most recent call last)\r\n<ipython-input-21-9569af2e18b6> in <module>()\r\n      1 # Test cell; please do not change!\r\n      2 from client.api.assignment import load_assignment\r\n----> 3 lab01 = load_assignment('lab01.ok')\r\n\r\n/opt/conda/lib/python3.4/site-packages/client/api/assignment.py in load_assignment(filepath, cmd_args)\r\n     22     if cmd_args is None:\r\n     23         cmd_args = _MockNamespace()\r\n---> 24     return Assignment(cmd_args, **config)\r\n     25 \r\n     26 def _get_config(config):\r\n\r\n/opt/conda/lib/python3.4/site-packages/client/sources/common/core.py in __call__(cls, *args, **kargs)\r\n    185                 raise ex.SerializeException('__init__() missing expected '\r\n    186                                 'argument {}'.format(attr))\r\n--> 187         obj.post_instantiation()\r\n    188         return obj\r\n    189 \r\n\r\n/opt/conda/lib/python3.4/site-packages/client/api/assignment.py in post_instantiation(self)\r\n    107     def post_instantiation(self):\r\n    108         self._print_header()\r\n--> 109         self._load_tests()\r\n    110         self._load_protocols()\r\n    111         self.specified_tests = self._resolve_specified_tests(\r\n\r\n/opt/conda/lib/python3.4/site-packages/client/api/assignment.py in _load_tests(self)\r\n    131                 if parameter:\r\n    132                     test_name += ':' + parameter\r\n--> 133                 self.test_map.update(module.load(file, parameter, self))\r\n    134                 log.info('Loaded {}'.format(test_name))\r\n    135 \r\n\r\n/opt/conda/lib/python3.4/site-packages/client/sources/ok_test/__init__.py in load(file, parameter, assign)\r\n     47                                     assign.cmd_args.timeout, **test)}\r\n     48     except ex.SerializeException:\r\n---> 49         raise ex.LoadingException('Cannot load OK test {}'.format(file))\r\n\r\nLoadingException: Cannot load OK test tests/q30.py\r\n```"}}