test_task_page.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #! /usr/bin/env python3
  2. #
  3. # BitBake Toaster Implementation
  4. #
  5. # Copyright (C) 2013-2016 Intel Corporation
  6. #
  7. # SPDX-License-Identifier: GPL-2.0-only
  8. #
  9. from django.urls import reverse
  10. from django.utils import timezone
  11. from tests.browser.selenium_helpers import SeleniumTestCase
  12. from orm.models import Project, Build, Layer, Layer_Version, Recipe, Target
  13. from orm.models import Task, Task_Dependency
  14. class TestTaskPage(SeleniumTestCase):
  15. """ Test page which shows an individual task """
  16. RECIPE_NAME = 'bar'
  17. RECIPE_VERSION = '0.1'
  18. TASK_NAME = 'do_da_doo_ron_ron'
  19. def setUp(self):
  20. now = timezone.now()
  21. project = Project.objects.get_or_create_default_project()
  22. self.build = Build.objects.create(project=project, started_on=now,
  23. completed_on=now)
  24. Target.objects.create(target='foo', build=self.build)
  25. layer = Layer.objects.create()
  26. layer_version = Layer_Version.objects.create(layer=layer)
  27. recipe = Recipe.objects.create(name=TestTaskPage.RECIPE_NAME,
  28. layer_version=layer_version, version=TestTaskPage.RECIPE_VERSION)
  29. self.task = Task.objects.create(build=self.build, recipe=recipe,
  30. order=1, outcome=Task.OUTCOME_COVERED, task_executed=False,
  31. task_name=TestTaskPage.TASK_NAME)
  32. def test_covered_task(self):
  33. """
  34. Check that covered tasks are displayed for tasks which have
  35. dependencies on themselves
  36. """
  37. # the infinite loop which of bug 9952 was down to tasks which
  38. # depend on themselves, so add self-dependent tasks to replicate the
  39. # situation which caused the infinite loop (now fixed)
  40. Task_Dependency.objects.create(task=self.task, depends_on=self.task)
  41. url = reverse('task', args=(self.build.id, self.task.id,))
  42. self.get(url)
  43. # check that we see the task name
  44. self.wait_until_visible('.page-header h1')
  45. heading = self.find('.page-header h1')
  46. expected_heading = '%s_%s %s' % (TestTaskPage.RECIPE_NAME,
  47. TestTaskPage.RECIPE_VERSION, TestTaskPage.TASK_NAME)
  48. self.assertEqual(heading.text, expected_heading,
  49. 'Heading should show recipe name, version and task')