[bitbake-devel] [PATCH 16/22] toastergui: add tests for xhr_datatypeahead calls

Alex DAMIAN alexandru.damian at intel.com
Thu May 28 14:14:10 UTC 2015


From: Alexandru DAMIAN <alexandru.damian at intel.com>

In order to make sure we replace the xhr_datatypeahead calls
with similar APIs, we add tests that validate the data returned
by the xhr_datatypeahead. A copy of these tests will be enabled
for each type of datatypeahead that will be replaced.

Signed-off-by: Alexandru DAMIAN <alexandru.damian at intel.com>
---
 lib/toaster/toastergui/tests.py | 50 +++++++++++++++++++++++++++++++++++++----
 1 file changed, 46 insertions(+), 4 deletions(-)

diff --git a/lib/toaster/toastergui/tests.py b/lib/toaster/toastergui/tests.py
index 8a78a41..0f10020 100644
--- a/lib/toaster/toastergui/tests.py
+++ b/lib/toaster/toastergui/tests.py
@@ -1,14 +1,18 @@
 from django.test import TestCase
 from django.core.urlresolvers import reverse
 from orm.models import Project, Release, BitbakeVersion, Build
+from orm.models import ReleaseLayerSourcePriority, LayerSource, Layer, Layer_Version
 
-class AllProjectsViewTestCase(TestCase):
+class ProvisionedProjectTestCase(TestCase):
     TEST_PROJECT_NAME = "test project"
 
     def setUp(self):
-        bbv, created = BitbakeVersion.objects.get_or_create(name="test bbv", giturl="/tmp/", branch="master", dirpath="")
-        release, created = Release.objects.get_or_create(name="test release", bitbake_version = bbv)
-        Project.objects.create_project(name=AllProjectsViewTestCase.TEST_PROJECT_NAME, release=release)
+        self.bbv, created = BitbakeVersion.objects.get_or_create(name="test bbv", giturl="/tmp/", branch="master", dirpath="")
+        self.release, created = Release.objects.get_or_create(name="test release", bitbake_version = self.bbv)
+        self.project = Project.objects.create_project(name=AllProjectsViewTestCase.TEST_PROJECT_NAME, release=self.release)
+
+
+class AllProjectsViewTestCase(ProvisionedProjectTestCase):
 
     def test_get_base_call_returns_html(self):
         response = self.client.get(reverse('all-projects'), follow=True)
@@ -21,16 +25,54 @@ class AllProjectsViewTestCase(TestCase):
         response = self.client.get(reverse('all-projects'), {"format": "json"}, follow=True)
         self.assertEqual(response.status_code, 200)
         self.assertTrue(response['Content-Type'].startswith('application/json'))
+
         try:
             import json
             data = json.loads(response.content)
         except:
             self.fail("Response %s is not json-loadable" % response.content)
 
+        self.assertTrue("error" in data)
+        self.assertEqual(data["error"], "ok")
         self.assertTrue("list" in data)
+
         self.assertTrue(AllProjectsViewTestCase.TEST_PROJECT_NAME in map(lambda x: x["name"], data["list"]))
         self.assertTrue("id" in data["list"][0])
         self.assertTrue("xhrProjectDataTypeaheadUrl" in data["list"][0])
         self.assertTrue("projectPageUrl" in data["list"][0])
         self.assertTrue("xhrProjectEditUrl" in data["list"][0])
         self.assertTrue("projectBuildUrl" in data["list"][0])
+
+class ProvisionedLayersProjectTestCase(ProvisionedProjectTestCase):
+    LAYER_NAME = "base-layer"
+    def setUp(self):
+        super(ProvisionedLayersProjectTestCase, self).setUp()
+        self.layersource, created = LayerSource.objects.get_or_create(sourcetype = LayerSource.TYPE_IMPORTED)
+        self.releaselayersourcepriority, created = ReleaseLayerSourcePriority.objects.get_or_create(release = self.release, layer_source = self.layersource)
+        self.layer, created = Layer.objects.get_or_create(name=XHRDataTypeAheadTestCase.LAYER_NAME, layer_source=self.layersource, vcs_url="/tmp/")
+        self.lv, created = Layer_Version.objects.get_or_create(layer = self.layer, project = self.project, layer_source=self.layersource, commit="master")
+
+
+class XHRDataTypeAheadTestCase(ProvisionedLayersProjectTestCase):
+
+    def setUp(self):
+        super(XHRDataTypeAheadTestCase, self).setUp()
+        self.assertTrue(self.lv in self.project.compatible_layerversions())
+
+    def test_xhr_datatypeahead_layer(self):
+        response = self.client.get(reverse('xhr_datatypeahead', args=(self.project.id,)), {"type": "layers"})
+        self.assertEqual(response.status_code, 200)
+        self.assertTrue(response['Content-Type'].startswith('application/json'))
+
+        try:
+            import json
+            data = json.loads(response.content)
+        except:
+            self.fail("Response %s is not json-loadable" % response.content)
+
+        self.assertTrue("error" in data)
+        self.assertEqual(data["error"], "ok")
+        self.assertTrue("list" in data)
+        self.assertTrue(len(data["list"]) > 0)
+
+        self.assertTrue(XHRDataTypeAheadTestCase.LAYER_NAME in map(lambda x: x["name"], data["list"]))
-- 
1.9.1




More information about the bitbake-devel mailing list