Initial implementation of Test Planner Machine View. No coloring or
drilldowns yet.

Signed-off-by: James Ren <jamesren@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4479 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/frontend/planner/rpc_interface_unittest.py b/frontend/planner/rpc_interface_unittest.py
index 42f682d..9dd345b 100644
--- a/frontend/planner/rpc_interface_unittest.py
+++ b/frontend/planner/rpc_interface_unittest.py
@@ -186,5 +186,51 @@
         self.god.check_playback()
 
 
+    def test_get_machine_view_data(self):
+        self._setup_active_plan()
+
+        host1_expected = {'machine': 'host1',
+                          'status': 'Running',
+                          'tests_run': [],
+                          'bug_ids': []}
+        host2_expected = {'machine': 'host2',
+                          'status': 'Running',
+                          'tests_run': [],
+                          'bug_ids': []}
+
+        expected = (host1_expected, host2_expected)
+        actual = rpc_interface.get_machine_view_data(plan_id=self._plan.id)
+        self.assertEqual(sorted(actual), sorted(expected))
+
+        # active TKO test
+        tko_test = tko_models.Test.objects.create(job=self._tko_job,
+                                                  test='test',
+                                                  machine=self._tko_machine,
+                                                  kernel=self._tko_kernel,
+                                                  status=self._running_status)
+        testrun = models.TestRun.objects.create(plan=self._plan,
+                                                test_job=self._planner_job,
+                                                host=self._planner_host,
+                                                tko_test=tko_test,
+                                                finalized=True)
+
+        host1_expected['tests_run'] = [{'test_name': 'test',
+                                        'success': False}]
+        actual = rpc_interface.get_machine_view_data(plan_id=self._plan.id)
+        self.assertEqual(sorted(actual), sorted(expected))
+
+        # TKO test complete, passed, with bug filed
+        tko_test.status = self._good_status
+        tko_test.save()
+        bug = models.Bug.objects.create(external_uid='bug')
+        testrun.bugs.add(bug)
+
+        host1_expected['tests_run'] = [{'test_name': 'test',
+                                        'success': True}]
+        host1_expected['bug_ids'] = ['bug']
+        actual = rpc_interface.get_machine_view_data(plan_id=self._plan.id)
+        self.assertEqual(sorted(actual), sorted(expected))
+
+
 if __name__ == '__main__':
     unittest.main()