diff options
author | Michael Wood <michael.g.wood@intel.com> | 2016-05-26 16:12:25 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-06-15 08:35:04 +0100 |
commit | 82722cb5645cfee8007adc0076315ea63f2bda15 (patch) | |
tree | 928012ef4b2e9f9d44515f3e873a91c96fe6c21e | |
parent | c42f1cc81dda06ee39d1f0dd76a14da17b9c7f54 (diff) | |
download | openembedded-core-contrib-82722cb5645cfee8007adc0076315ea63f2bda15.tar.gz |
bitbake: toaster: tests Add new build tables to tests
- Add new build tables to be tested
- Add required data into the fixture and clean up a few empty fields
- Fix the SoftwareRecipesTable specific test so as not to rely on two
particular defined recipes
(Bitbake rev: 7cf23671659666b27b5629fecd5f947f9bdb94e0)
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | bitbake/lib/toaster/toastergui/fixtures/toastergui-unittest-data.xml | 91 | ||||
-rw-r--r-- | bitbake/lib/toaster/toastergui/tests.py | 40 |
2 files changed, 94 insertions, 37 deletions
diff --git a/bitbake/lib/toaster/toastergui/fixtures/toastergui-unittest-data.xml b/bitbake/lib/toaster/toastergui/fixtures/toastergui-unittest-data.xml index cf35be4be6..213bf0f675 100644 --- a/bitbake/lib/toaster/toastergui/fixtures/toastergui-unittest-data.xml +++ b/bitbake/lib/toaster/toastergui/fixtures/toastergui-unittest-data.xml @@ -82,9 +82,8 @@ <field to="orm.build" name="build" rel="ManyToOneRel">1</field> <field type="CharField" name="target">a image recipe</field> <field type="CharField" name="task"><None></None></field> - <field type="BooleanField" name="is_image">False</field> - <field type="IntegerField" name="image_size">0</field> - <field type="CharField" name="license_manifest_path"><None></None></field> + <field type="BooleanField" name="is_image">True</field> + <field type="IntegerField" name="image_size">290</field> </object> <object pk="2" model="orm.target"> <field to="orm.build" name="build" rel="ManyToOneRel">2</field> @@ -118,9 +117,9 @@ </object> <object pk="2" model="orm.package"> <field to="orm.build" name="build" rel="ManyToOneRel">1</field> - <field to="orm.recipe" name="recipe" rel="ManyToOneRel">2</field> + <field to="orm.recipe" name="recipe" rel="ManyToOneRel">1</field> <field type="CharField" name="name">f pkg</field> - <field type="CharField" name="installed_name"></field> + <field type="CharField" name="installed_name">f</field> <field type="CharField" name="version"></field> <field type="CharField" name="revision"></field> <field type="TextField" name="summary"></field> @@ -297,6 +296,16 @@ <field type="CharField" name="pathflags"></field> <field type="BooleanField" name="is_image">False</field> </object> + <!-- Added for an additional built recipe --> + <object pk="6" model="orm.recipe"> + <field type="CharField" name="name">g recipe</field> + <field type="CharField" name="version">1.2.3</field> + <field to="orm.layer_version" name="layer_version" rel="ManyToOneRel">3</field> + <field type="CharField" name="license">g license</field> + <field type="FilePathField" name="file_path">/g</field> + <field type="BooleanField" name="is_image">False</field> + </object> + <object pk="1" model="orm.machine"> <field to="orm.layersource" name="layer_source" rel="ManyToOneRel"><None></None></field> <field type="IntegerField" name="up_id"><None></None></field> @@ -353,8 +362,6 @@ </object> <object pk="1" model="orm.branch"> <field to="orm.layersource" name="layer_source" rel="ManyToOneRel">1</field> - <field type="IntegerField" name="up_id"><None></None></field> - <field type="DateTimeField" name="up_date"><None></None></field> <field type="CharField" name="name">master</field> <field type="CharField" name="short_description"></field> </object> @@ -363,13 +370,7 @@ <field type="IntegerField" name="up_id"><None></None></field> <field type="DateTimeField" name="up_date"><None></None></field> <field type="CharField" name="name">a layer</field> - <field type="CharField" name="layer_index_url"></field> <field type="CharField" name="vcs_url">/tmp/</field> - <field type="CharField" name="vcs_web_url"><None></None></field> - <field type="CharField" name="vcs_web_tree_base_url"><None></None></field> - <field type="CharField" name="vcs_web_file_base_url"><None></None></field> - <field type="TextField" name="summary"><None></None></field> - <field type="TextField" name="description"><None></None></field> </object> <object pk="2" model="orm.layer"> <field to="orm.layersource" name="layer_source" rel="ManyToOneRel">1</field> @@ -378,21 +379,16 @@ <field type="CharField" name="name">z layer</field> <field type="CharField" name="layer_index_url"></field> <field type="CharField" name="vcs_url">git://two/</field> - <field type="CharField" name="vcs_web_url"><None></None></field> - <field type="CharField" name="vcs_web_tree_base_url"><None></None></field> - <field type="CharField" name="vcs_web_file_base_url"><None></None></field> - <field type="TextField" name="summary"><None></None></field> - <field type="TextField" name="description"><None></None></field> </object> <object pk="1" model="orm.layer_version"> - <field to="orm.build" name="build" rel="ManyToOneRel"><None></None></field> + <field to="orm.build" name="build" rel="ManyToOneRel">1</field> <field to="orm.layer" name="layer" rel="ManyToOneRel">1</field> <field to="orm.layersource" name="layer_source" rel="ManyToOneRel">1</field> <field type="IntegerField" name="up_id"><None></None></field> <field type="DateTimeField" name="up_date"><None></None></field> <field to="orm.branch" name="up_branch" rel="ManyToOneRel">1</field> - <field type="CharField" name="branch"></field> - <field type="CharField" name="commit">master</field> + <field type="CharField" name="branch">master</field> + <field type="CharField" name="commit">abcdef123</field> <field type="CharField" name="dirpath">/tmp/</field> <field type="IntegerField" name="priority">0</field> <field type="FilePathField" name="local_path">/</field> @@ -405,8 +401,22 @@ <field type="IntegerField" name="up_id"><None></None></field> <field type="DateTimeField" name="up_date"><None></None></field> <field to="orm.branch" name="up_branch" rel="ManyToOneRel">1</field> - <field type="CharField" name="branch"></field> - <field type="CharField" name="commit">master</field> + <field type="CharField" name="branch">testing-branch</field> + <field type="CharField" name="commit">9876fedcba</field> + <field type="CharField" name="dirpath"><None></None></field> + <field type="IntegerField" name="priority">0</field> + <field type="FilePathField" name="local_path">/</field> + <field to="orm.project" name="project" rel="ManyToOneRel"><None></None></field> + </object> + <object pk="3" model="orm.layer_version"> + <field to="orm.build" name="build" rel="ManyToOneRel">1</field> + <field to="orm.layer" name="layer" rel="ManyToOneRel">2</field> + <field to="orm.layersource" name="layer_source" rel="ManyToOneRel">1</field> + <field type="IntegerField" name="up_id"><None></None></field> + <field type="DateTimeField" name="up_date"><None></None></field> + <field to="orm.branch" name="up_branch" rel="ManyToOneRel">1</field> + <field type="CharField" name="branch">testing-branch</field> + <field type="CharField" name="commit">9876fedcba</field> <field type="CharField" name="dirpath"><None></None></field> <field type="IntegerField" name="priority">0</field> <field type="FilePathField" name="local_path">/</field> @@ -443,4 +453,39 @@ <field type="FilePathField" name="pathname"></field> <field type="IntegerField" name="lineno"><None></None></field> </object> + <!-- Some tasks for build 1 to test build tables --> + <object pk="1" model="orm.task"> + <field to="orm.build" name="build" rel="ManyToOneRel">1</field> + <field type="IntegerField" name="order">1</field> + <field type="BooleanField" name="task_executed">False</field> + <field type="IntegerField" name="outcome">-1</field> + <field type="CharField" name="sstate_checksum">abcdef123</field> + <field type="FilePathField" name="path_to_sstate_obj">34/wefw.tar</field> + <field to="orm.recipe" name="recipe" rel="ManyToOneRel">1</field> + <field type="CharField" name="task_name">a_do_compile</field> + <field type="DecimalField" name="elapsed_time">100</field> + <field type="IntegerField" name="disk_io">10</field> + <field type="IntegerField" name="disk_io_read">11</field> + <field type="IntegerField" name="disk_io_write">12</field> + <field type="DecimalField" name="cpu_time_user">10.1</field> + <field type="DecimalField" name="cpu_time_system">10.2</field> + <field type="IntegerField" name="sstate_result">3</field> + </object> + <object pk="2" model="orm.task"> + <field to="orm.build" name="build" rel="ManyToOneRel">1</field> + <field type="IntegerField" name="order">2</field> + <field type="BooleanField" name="task_executed">True</field> + <field type="IntegerField" name="outcome">2</field> + <field type="CharField" name="sstate_checksum">85bccb7802fd5f48</field> + <field type="FilePathField" name="path_to_sstate_obj">85/sstarpm.tgz</field> + <field to="orm.recipe" name="recipe" rel="ManyToOneRel">2</field> + <field type="CharField" name="task_name">z_do_package_write_rpm</field> + <field type="DecimalField" name="elapsed_time">245</field> + <field type="IntegerField" name="disk_io">12424</field> + <field type="IntegerField" name="disk_io_read">23423</field> + <field type="IntegerField" name="disk_io_write">83943</field> + <field type="DecimalField" name="cpu_time_user">20394.3</field> + <field type="DecimalField" name="cpu_time_system">5363.3</field> + <field type="IntegerField" name="sstate_result">1</field> + </object> </django-objects> diff --git a/bitbake/lib/toaster/toastergui/tests.py b/bitbake/lib/toaster/toastergui/tests.py index 869c39d84c..9af101804f 100644 --- a/bitbake/lib/toaster/toastergui/tests.py +++ b/bitbake/lib/toaster/toastergui/tests.py @@ -25,6 +25,7 @@ from django.test import TestCase from django.test.client import RequestFactory from django.core.urlresolvers import reverse from django.utils import timezone +from django.db.models import Q from orm.models import Project, Release, BitbakeVersion, Package, LogMessage from orm.models import ReleaseLayerSourcePriority, LayerSource, Layer, Build @@ -57,7 +58,6 @@ class ViewTests(TestCase): self.project = Project.objects.first() self.recipe1 = Recipe.objects.get(pk=2) - self.recipe2 = Recipe.objects.last() self.customr = CustomImageRecipe.objects.first() self.cust_package = CustomImagePackage.objects.first() self.package = Package.objects.first() @@ -311,7 +311,6 @@ class ViewTests(TestCase): self.assertEqual(response.status_code, 200) - def test_software_recipes_table(self): """Test structure returned for Software RecipesTable""" table = SoftwareRecipesTable() @@ -319,27 +318,35 @@ class ViewTests(TestCase): response = table.get(request, pid=self.project.id) data = json.loads(response.content) + recipes = Recipe.objects.filter(Q(is_image=False)) + self.assertTrue(len(recipes) > 1, + "Need more than one software recipe to test " + "SoftwareRecipesTable") + + recipe1 = recipes[0] + recipe2 = recipes[1] + rows = data['rows'] - row1 = next(x for x in rows if x['name'] == self.recipe1.name) - row2 = next(x for x in rows if x['name'] == self.recipe2.name) + row1 = next(x for x in rows if x['name'] == recipe1.name) + row2 = next(x for x in rows if x['name'] == recipe2.name) self.assertEqual(response.status_code, 200, 'should be 200 OK status') # check other columns have been populated correctly - self.assertTrue(self.recipe1.name in row1['name']) - self.assertTrue(self.recipe1.version in row1['version']) - self.assertTrue(self.recipe1.description in + self.assertTrue(recipe1.name in row1['name']) + self.assertTrue(recipe1.version in row1['version']) + self.assertTrue(recipe1.description in row1['get_description_or_summary']) - self.assertTrue(self.recipe1.layer_version.layer.name in + self.assertTrue(recipe1.layer_version.layer.name in row1['layer_version__layer__name']) - self.assertTrue(self.recipe2.name in row2['name']) - self.assertTrue(self.recipe2.version in row2['version']) - self.assertTrue(self.recipe2.description in + self.assertTrue(recipe2.name in row2['name']) + self.assertTrue(recipe2.version in row2['version']) + self.assertTrue(recipe2.description in row2['get_description_or_summary']) - self.assertTrue(self.recipe2.layer_version.layer.name in + self.assertTrue(recipe2.layer_version.layer.name in row2['layer_version__layer__name']) def test_toaster_tables(self): @@ -360,7 +367,9 @@ class ViewTests(TestCase): 'layerid': self.lver.pk, 'recipeid': self.recipe1.pk, 'recipe_id': image_recipe.pk, - 'custrecipeid': self.customr.pk} + 'custrecipeid': self.customr.pk, + 'build_id': 1, + 'target_id': 1} response = table.get(request, **args) return json.loads(response.content) @@ -386,11 +395,14 @@ class ViewTests(TestCase): # Get a list of classes in tables module tables = inspect.getmembers(toastergui.tables, inspect.isclass) + tables.extend(inspect.getmembers(toastergui.buildtables, + inspect.isclass)) for name, table_cls in tables: # Filter out the non ToasterTables from the tables module if not issubclass(table_cls, toastergui.widgets.ToasterTable) or \ - table_cls == toastergui.widgets.ToasterTable: + table_cls == toastergui.widgets.ToasterTable or \ + 'Mixin' in name: continue # Get the table data without any options, this also does the |