diff options
| -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("-")] |
