diff options
Diffstat (limited to 'bitbake/lib/toaster/toastergui/tests.py')
-rw-r--r-- | bitbake/lib/toaster/toastergui/tests.py | 91 |
1 files changed, 66 insertions, 25 deletions
diff --git a/bitbake/lib/toaster/toastergui/tests.py b/bitbake/lib/toaster/toastergui/tests.py index bd5cb0f244..56a7d7e860 100644 --- a/bitbake/lib/toaster/toastergui/tests.py +++ b/bitbake/lib/toaster/toastergui/tests.py | |||
@@ -72,7 +72,8 @@ class ViewTests(TestCase): | |||
72 | 72 | ||
73 | build = Build.objects.create(project=self.project, | 73 | build = Build.objects.create(project=self.project, |
74 | started_on=now, | 74 | started_on=now, |
75 | completed_on=now) | 75 | completed_on=now, |
76 | outcome=Build.SUCCEEDED) | ||
76 | 77 | ||
77 | # for testing BuildsTable | 78 | # for testing BuildsTable |
78 | build1 = Build.objects.create(project=self.project, | 79 | build1 = Build.objects.create(project=self.project, |
@@ -163,22 +164,33 @@ class ViewTests(TestCase): | |||
163 | self.customr = CustomImageRecipe.objects.create(\ | 164 | self.customr = CustomImageRecipe.objects.create(\ |
164 | name="custom recipe", project=self.project, | 165 | name="custom recipe", project=self.project, |
165 | base_recipe=self.recipe1, | 166 | base_recipe=self.recipe1, |
167 | file_path="custr", | ||
166 | layer_version=lver_custom) | 168 | layer_version=lver_custom) |
167 | 169 | ||
168 | CustomImageRecipe.objects.create(name="z custom recipe", | ||
169 | project=self.project, | ||
170 | base_recipe=self.recipe1) | ||
171 | |||
172 | self.package = Package.objects.create(name='pkg1', | 170 | self.package = Package.objects.create(name='pkg1', |
173 | size=999, | 171 | size=999, |
174 | recipe=self.recipe1, | 172 | recipe=self.recipe1, |
173 | license="HHH", | ||
175 | build=build) | 174 | build=build) |
176 | 175 | ||
177 | Package.objects.create(name='zpkg1', recipe=self.recipe1, build=build) | 176 | Package.objects.create(name='A pkg1', |
177 | size=777, | ||
178 | recipe=self.recipe1, | ||
179 | build=build) | ||
180 | |||
181 | Package.objects.create(name='zpkg1', | ||
182 | recipe=self.recipe1, | ||
183 | build=build, | ||
184 | size=4, | ||
185 | license="ZZ") | ||
178 | 186 | ||
179 | self.cust_package = CustomImagePackage.objects.create( | 187 | self.cust_package = CustomImagePackage.objects.create( |
180 | name="ppkg1", | 188 | name="A pkg", |
181 | recipe=self.recipe1) | 189 | recipe=self.recipe1, |
190 | size=10, | ||
191 | license="AAA") | ||
192 | |||
193 | self.customr.appends_set.add(self.cust_package) | ||
182 | 194 | ||
183 | # recipe with project for testing AvailableRecipe table | 195 | # recipe with project for testing AvailableRecipe table |
184 | self.recipe2 = Recipe.objects.create(layer_source=layersrc, | 196 | self.recipe2 = Recipe.objects.create(layer_source=layersrc, |
@@ -191,6 +203,19 @@ class ViewTests(TestCase): | |||
191 | section="Z section", | 203 | section="Z section", |
192 | file_path='/home/foo') | 204 | file_path='/home/foo') |
193 | 205 | ||
206 | # additional package for the sorting for the SelectPackagesTable | ||
207 | cust_package_two = CustomImagePackage.objects.create(name="ZZ pkg", | ||
208 | size=5, | ||
209 | recipe=self.recipe2) | ||
210 | |||
211 | self.customr.appends_set.add(cust_package_two) | ||
212 | |||
213 | Package.objects.create(name='one1', | ||
214 | recipe=self.recipe2, | ||
215 | build=build, | ||
216 | size=2, | ||
217 | license="L") | ||
218 | |||
194 | Recipe.objects.create(layer_source=layersrc, | 219 | Recipe.objects.create(layer_source=layersrc, |
195 | is_image=True, | 220 | is_image=True, |
196 | name="Test image one", | 221 | name="Test image one", |
@@ -202,17 +227,27 @@ class ViewTests(TestCase): | |||
202 | file_path="/one/", | 227 | file_path="/one/", |
203 | layer_version=self.lver) | 228 | layer_version=self.lver) |
204 | 229 | ||
205 | Recipe.objects.create(layer_source=layersrc, | 230 | zrecipe = Recipe.objects.create(layer_source=layersrc, |
206 | is_image=True, | 231 | is_image=True, |
207 | name="Z Test image two", | 232 | name="Z Test image two", |
208 | version="1.3", | 233 | version="1.3", |
209 | summary="two image recipe", | 234 | summary="two image recipe", |
210 | description="recipe two", | 235 | description="recipe two", |
211 | section="B", | 236 | section="B", |
212 | license="Z", | 237 | license="Z", |
213 | file_path="/two/", | 238 | file_path="/two/", |
214 | layer_version=lver_two) | 239 | layer_version=lver_two) |
215 | 240 | ||
241 | CustomImageRecipe.objects.create(name="z custom recipe", | ||
242 | project=self.project, | ||
243 | base_recipe=zrecipe, | ||
244 | file_path="zzzz", | ||
245 | layer_version=lver_custom) | ||
246 | |||
247 | # Packages in PackagesTable requre that the recipe has been built so | ||
248 | # we need to create a target and build pair | ||
249 | target = Target.objects.create(target=self.recipe1.name, | ||
250 | build=build) | ||
216 | 251 | ||
217 | 252 | ||
218 | 253 | ||
@@ -416,14 +451,17 @@ class ViewTests(TestCase): | |||
416 | self.assertEqual(self.customr.appends_set.first().name, | 451 | self.assertEqual(self.customr.appends_set.first().name, |
417 | self.cust_package.name) | 452 | self.cust_package.name) |
418 | # delete it | 453 | # delete it |
454 | to_delete = self.customr.appends_set.first().pk | ||
419 | del_url = reverse('xhr_customrecipe_packages', | 455 | del_url = reverse('xhr_customrecipe_packages', |
420 | args=(self.customr.id, | 456 | args=(self.customr.id, to_delete)) |
421 | self.customr.appends_set.first().id)) | ||
422 | 457 | ||
423 | response = self.client.delete(del_url) | 458 | response = self.client.delete(del_url) |
424 | self.assertEqual(response.status_code, 200) | 459 | self.assertEqual(response.status_code, 200) |
425 | self.assertEqual(json.loads(response.content), {"error": "ok"}) | 460 | self.assertEqual(json.loads(response.content), {"error": "ok"}) |
426 | self.assertFalse(self.customr.includes_set.all()) | 461 | all_packages = self.customr.get_all_packages().values_list('pk', |
462 | flat=True) | ||
463 | |||
464 | self.assertFalse(to_delete in all_packages) | ||
427 | # delete invalid package to test error condition | 465 | # delete invalid package to test error condition |
428 | del_url = reverse('xhr_customrecipe_packages', | 466 | del_url = reverse('xhr_customrecipe_packages', |
429 | args=(self.customr.id, | 467 | args=(self.customr.id, |
@@ -465,8 +503,8 @@ class ViewTests(TestCase): | |||
465 | row2 = next(x for x in rows if x['name'] == self.recipe2.name) | 503 | row2 = next(x for x in rows if x['name'] == self.recipe2.name) |
466 | 504 | ||
467 | self.assertEqual(response.status_code, 200, 'should be 200 OK status') | 505 | self.assertEqual(response.status_code, 200, 'should be 200 OK status') |
468 | # self.recipe1 + self.recipe2 + self.customr = 3 | 506 | # All recipes in the setUp |
469 | self.assertEqual(len(rows), 3, 'should be 3 recipes') | 507 | self.assertEqual(len(rows), 5, 'should be 5 recipes') |
470 | 508 | ||
471 | # check other columns have been populated correctly | 509 | # check other columns have been populated correctly |
472 | self.assertEqual(row1['name'], self.recipe1.name) | 510 | self.assertEqual(row1['name'], self.recipe1.name) |
@@ -484,6 +522,7 @@ class ViewTests(TestCase): | |||
484 | 522 | ||
485 | def test_toaster_tables(self): | 523 | def test_toaster_tables(self): |
486 | """Test all ToasterTables instances""" | 524 | """Test all ToasterTables instances""" |
525 | current_recipes = self.project.get_available_recipes() | ||
487 | 526 | ||
488 | def get_data(table, options={}): | 527 | def get_data(table, options={}): |
489 | """Send a request and parse the json response""" | 528 | """Send a request and parse the json response""" |
@@ -494,7 +533,9 @@ class ViewTests(TestCase): | |||
494 | response = table.get(request, | 533 | response = table.get(request, |
495 | pid=self.project.id, | 534 | pid=self.project.id, |
496 | layerid=self.lver.pk, | 535 | layerid=self.lver.pk, |
497 | recipeid=self.recipe1.pk) | 536 | recipeid=self.recipe1.pk, |
537 | recipe_id=self.recipe1.pk, | ||
538 | custrecipeid=self.customr.pk) | ||
498 | return json.loads(response.content) | 539 | return json.loads(response.content) |
499 | 540 | ||
500 | # Get a list of classes in tables module | 541 | # Get a list of classes in tables module |
@@ -513,7 +554,7 @@ class ViewTests(TestCase): | |||
513 | all_data = get_data(table) | 554 | all_data = get_data(table) |
514 | 555 | ||
515 | self.assertTrue(len(all_data['rows']) > 1, | 556 | self.assertTrue(len(all_data['rows']) > 1, |
516 | "Cannot test on the table %s with < 1 row" % name) | 557 | "Cannot test on a %s table with < 1 row" % name) |
517 | 558 | ||
518 | if table.default_orderby: | 559 | if table.default_orderby: |
519 | row_one = all_data['rows'][0][table.default_orderby.strip("-")] | 560 | row_one = all_data['rows'][0][table.default_orderby.strip("-")] |