1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-31 12:49:46 +00:00

bitbake: toastergui: add tests for xhr_datatypeahead calls

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.

(Bitbake rev: 9a3197fba46b38e5863e7ded11e4bf9530cfcc9b)

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alexandru DAMIAN
2015-05-19 18:02:21 +01:00
committed by Richard Purdie
parent 65c805eb6a
commit 22a0d8aab2
+46 -4
View File
@@ -1,14 +1,18 @@
from django.test import TestCase from django.test import TestCase
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from orm.models import Project, Release, BitbakeVersion, Build 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" TEST_PROJECT_NAME = "test project"
def setUp(self): def setUp(self):
bbv, created = BitbakeVersion.objects.get_or_create(name="test bbv", giturl="/tmp/", branch="master", dirpath="") 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) self.release, created = Release.objects.get_or_create(name="test release", bitbake_version = self.bbv)
Project.objects.create_project(name=AllProjectsViewTestCase.TEST_PROJECT_NAME, release=release) 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): def test_get_base_call_returns_html(self):
response = self.client.get(reverse('all-projects'), follow=True) 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) response = self.client.get(reverse('all-projects'), {"format": "json"}, follow=True)
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertTrue(response['Content-Type'].startswith('application/json')) self.assertTrue(response['Content-Type'].startswith('application/json'))
try: try:
import json import json
data = json.loads(response.content) data = json.loads(response.content)
except: except:
self.fail("Response %s is not json-loadable" % response.content) 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("list" in data)
self.assertTrue(AllProjectsViewTestCase.TEST_PROJECT_NAME in map(lambda x: x["name"], data["list"])) self.assertTrue(AllProjectsViewTestCase.TEST_PROJECT_NAME in map(lambda x: x["name"], data["list"]))
self.assertTrue("id" in data["list"][0]) self.assertTrue("id" in data["list"][0])
self.assertTrue("xhrProjectDataTypeaheadUrl" in data["list"][0]) self.assertTrue("xhrProjectDataTypeaheadUrl" in data["list"][0])
self.assertTrue("projectPageUrl" in data["list"][0]) self.assertTrue("projectPageUrl" in data["list"][0])
self.assertTrue("xhrProjectEditUrl" in data["list"][0]) self.assertTrue("xhrProjectEditUrl" in data["list"][0])
self.assertTrue("projectBuildUrl" 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"]))