mirror of
https://git.yoctoproject.org/poky
synced 2026-04-29 18:32:20 +02:00
bitbake: toaster/tests: bug-fix tests writing files into /tmp on the autobuilders
- Use build directory instead of /tmp - Better handle delay between driver actions (Bitbake rev: 234b125c11e4cca015e4d54fbddbfd3d276b88f6) Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
6d91225651
commit
7fefb85888
@@ -7,6 +7,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
|
||||
import os
|
||||
import re
|
||||
|
||||
from django.urls import reverse
|
||||
@@ -27,7 +28,8 @@ class TestAllBuildsPage(SeleniumTestCase):
|
||||
CLI_BUILDS_PROJECT_NAME = 'command line builds'
|
||||
|
||||
def setUp(self):
|
||||
bbv = BitbakeVersion.objects.create(name='bbv1', giturl='/tmp/',
|
||||
builldir = os.environ.get('BUILDDIR', './')
|
||||
bbv = BitbakeVersion.objects.create(name='bbv1', giturl=f'{builldir}/',
|
||||
branch='master', dirpath='')
|
||||
release = Release.objects.create(name='release1',
|
||||
bitbake_version=bbv)
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
|
||||
import os
|
||||
import re
|
||||
import time
|
||||
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
@@ -20,6 +20,7 @@ from orm.models import ProjectVariable
|
||||
|
||||
from selenium.webdriver.common.by import By
|
||||
|
||||
|
||||
class TestAllProjectsPage(SeleniumTestCase):
|
||||
""" Browser tests for projects page /projects/ """
|
||||
|
||||
@@ -29,7 +30,8 @@ class TestAllProjectsPage(SeleniumTestCase):
|
||||
|
||||
def setUp(self):
|
||||
""" Add default project manually """
|
||||
project = Project.objects.create_project(self.CLI_BUILDS_PROJECT_NAME, None)
|
||||
project = Project.objects.create_project(
|
||||
self.CLI_BUILDS_PROJECT_NAME, None)
|
||||
self.default_project = project
|
||||
self.default_project.is_default = True
|
||||
self.default_project.save()
|
||||
@@ -60,12 +62,14 @@ class TestAllProjectsPage(SeleniumTestCase):
|
||||
|
||||
def _add_non_default_project(self):
|
||||
""" Add another project """
|
||||
bbv = BitbakeVersion.objects.create(name='test bbv', giturl='/tmp/',
|
||||
builldir = os.environ.get('BUILDDIR', './')
|
||||
bbv = BitbakeVersion.objects.create(name='test bbv', giturl=f'{builldir}/',
|
||||
branch='master', dirpath='')
|
||||
self.release = Release.objects.create(name='test release',
|
||||
branch_name='master',
|
||||
bitbake_version=bbv)
|
||||
self.project = Project.objects.create_project(self.PROJECT_NAME, self.release)
|
||||
self.project = Project.objects.create_project(
|
||||
self.PROJECT_NAME, self.release)
|
||||
self.project.is_default = False
|
||||
self.project.save()
|
||||
|
||||
@@ -77,7 +81,7 @@ class TestAllProjectsPage(SeleniumTestCase):
|
||||
|
||||
def _get_row_for_project(self, project_name):
|
||||
""" Get the HTML row for a project, or None if not found """
|
||||
self.wait_until_present('#projectstable tbody tr')
|
||||
self.wait_until_visible('#projectstable tbody tr', poll=3)
|
||||
rows = self.find_all('#projectstable tbody tr')
|
||||
|
||||
# find the row with a project name matching the one supplied
|
||||
@@ -108,7 +112,8 @@ class TestAllProjectsPage(SeleniumTestCase):
|
||||
url = reverse('all-projects')
|
||||
self.get(url)
|
||||
|
||||
default_project_row = self._get_row_for_project(self.default_project.name)
|
||||
default_project_row = self._get_row_for_project(
|
||||
self.default_project.name)
|
||||
|
||||
self.assertNotEqual(default_project_row, None,
|
||||
'default project "cli builds" should be in page')
|
||||
@@ -128,7 +133,8 @@ class TestAllProjectsPage(SeleniumTestCase):
|
||||
self.wait_until_visible("#projectstable tr")
|
||||
|
||||
# find the row for the default project
|
||||
default_project_row = self._get_row_for_project(self.default_project.name)
|
||||
default_project_row = self._get_row_for_project(
|
||||
self.default_project.name)
|
||||
|
||||
# check the release text for the default project
|
||||
selector = 'span[data-project-field="release"] span.text-muted'
|
||||
@@ -163,7 +169,8 @@ class TestAllProjectsPage(SeleniumTestCase):
|
||||
self.wait_until_visible("#projectstable tr")
|
||||
|
||||
# find the row for the default project
|
||||
default_project_row = self._get_row_for_project(self.default_project.name)
|
||||
default_project_row = self._get_row_for_project(
|
||||
self.default_project.name)
|
||||
|
||||
# check the machine cell for the default project
|
||||
selector = 'span[data-project-field="machine"] span.text-muted'
|
||||
@@ -198,13 +205,15 @@ class TestAllProjectsPage(SeleniumTestCase):
|
||||
self.get(reverse('all-projects'))
|
||||
|
||||
# find the row for the default project
|
||||
default_project_row = self._get_row_for_project(self.default_project.name)
|
||||
default_project_row = self._get_row_for_project(
|
||||
self.default_project.name)
|
||||
|
||||
# check the link on the name field
|
||||
selector = 'span[data-project-field="name"] a'
|
||||
element = default_project_row.find_element(By.CSS_SELECTOR, selector)
|
||||
link_url = element.get_attribute('href').strip()
|
||||
expected_url = reverse('projectbuilds', args=(self.default_project.id,))
|
||||
expected_url = reverse(
|
||||
'projectbuilds', args=(self.default_project.id,))
|
||||
msg = 'link on default project name should point to builds but was %s' % link_url
|
||||
self.assertTrue(link_url.endswith(expected_url), msg)
|
||||
|
||||
@@ -227,7 +236,7 @@ class TestAllProjectsPage(SeleniumTestCase):
|
||||
self.get(url)
|
||||
|
||||
# Chseck search box is present and works
|
||||
self.wait_until_present('#projectstable tbody tr')
|
||||
self.wait_until_visible('#projectstable tbody tr', poll=3)
|
||||
search_box = self.find('#search-input-projectstable')
|
||||
self.assertTrue(search_box.is_displayed())
|
||||
|
||||
@@ -235,8 +244,7 @@ class TestAllProjectsPage(SeleniumTestCase):
|
||||
search_box.send_keys('test project 10')
|
||||
search_btn = self.find('#search-submit-projectstable')
|
||||
search_btn.click()
|
||||
self.wait_until_present('#projectstable tbody tr')
|
||||
time.sleep(1)
|
||||
self.wait_until_visible('#projectstable tbody tr', poll=3)
|
||||
rows = self.find_all('#projectstable tbody tr')
|
||||
self.assertTrue(len(rows) == 1)
|
||||
|
||||
@@ -282,7 +290,7 @@ class TestAllProjectsPage(SeleniumTestCase):
|
||||
)
|
||||
url = reverse('all-projects')
|
||||
self.get(url)
|
||||
self.wait_until_present('#projectstable tbody tr')
|
||||
self.wait_until_visible('#projectstable tbody tr', poll=3)
|
||||
|
||||
# Check edit column
|
||||
edit_column = self.find('#edit-columns-button')
|
||||
@@ -305,19 +313,14 @@ class TestAllProjectsPage(SeleniumTestCase):
|
||||
def test_show_rows(row_to_show, show_row_link):
|
||||
# Check that we can show rows == row_to_show
|
||||
show_row_link.select_by_value(str(row_to_show))
|
||||
self.wait_until_present('#projectstable tbody tr')
|
||||
sleep_time = 1
|
||||
if row_to_show == 150:
|
||||
# wait more time for 150 rows
|
||||
sleep_time = 2
|
||||
time.sleep(sleep_time)
|
||||
self.wait_until_visible('#projectstable tbody tr', poll=3)
|
||||
self.assertTrue(
|
||||
len(self.find_all('#projectstable tbody tr')) == row_to_show
|
||||
)
|
||||
|
||||
url = reverse('all-projects')
|
||||
self.get(url)
|
||||
self.wait_until_present('#projectstable tbody tr')
|
||||
self.wait_until_visible('#projectstable tbody tr', poll=3)
|
||||
|
||||
show_rows = self.driver.find_elements(
|
||||
By.XPATH,
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
|
||||
import os
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
|
||||
@@ -21,7 +22,8 @@ class TestBuildDashboardPage(SeleniumTestCase):
|
||||
""" Tests for the build dashboard /build/X """
|
||||
|
||||
def setUp(self):
|
||||
bbv = BitbakeVersion.objects.create(name='bbv1', giturl='/tmp/',
|
||||
builldir = os.environ.get('BUILDDIR', './')
|
||||
bbv = BitbakeVersion.objects.create(name='bbv1', giturl=f'{builldir}/',
|
||||
branch='master', dirpath="")
|
||||
release = Release.objects.create(name='release1',
|
||||
bitbake_version=bbv)
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
|
||||
import os
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
|
||||
@@ -20,7 +21,8 @@ class TestBuildDashboardPageArtifacts(SeleniumTestCase):
|
||||
""" Tests for artifacts on the build dashboard /build/X """
|
||||
|
||||
def setUp(self):
|
||||
bbv = BitbakeVersion.objects.create(name='bbv1', giturl='/tmp/',
|
||||
builldir = os.environ.get('BUILDDIR', './')
|
||||
bbv = BitbakeVersion.objects.create(name='bbv1', giturl=f'{builldir}/',
|
||||
branch='master', dirpath="")
|
||||
release = Release.objects.create(name='release1',
|
||||
bitbake_version=bbv)
|
||||
|
||||
@@ -14,6 +14,7 @@ from selenium.webdriver.common.by import By
|
||||
|
||||
from orm.models import Layer, Layer_Version, Project, Build
|
||||
|
||||
|
||||
class TestLandingPage(SeleniumTestCase):
|
||||
""" Tests for redirects on the landing page """
|
||||
|
||||
@@ -40,7 +41,7 @@ class TestLandingPage(SeleniumTestCase):
|
||||
|
||||
# check that the info sign is clickable
|
||||
# and info modal is appearing when clicking on the info sign
|
||||
info_sign.click() # click on the info sign make attribute 'aria-describedby' visible
|
||||
info_sign.click() # click on the info sign make attribute 'aria-describedby' visible
|
||||
info_model_id = info_sign.get_attribute('aria-describedby')
|
||||
info_modal = self.find(f'#{info_model_id}')
|
||||
self.assertTrue(info_modal.is_displayed())
|
||||
@@ -55,7 +56,7 @@ class TestLandingPage(SeleniumTestCase):
|
||||
self.assertTrue(documentation_link.is_displayed())
|
||||
|
||||
# check browser open new tab toaster manual when clicking on the documentation link
|
||||
self.assertEqual(documentation_link.get_attribute('target') , '_blank')
|
||||
self.assertEqual(documentation_link.get_attribute('target'), '_blank')
|
||||
self.assertEqual(
|
||||
documentation_link.get_attribute('href'),
|
||||
'http://docs.yoctoproject.org/toaster-manual/index.html#toaster-user-manual')
|
||||
@@ -81,7 +82,8 @@ class TestLandingPage(SeleniumTestCase):
|
||||
bitbake = jumbotron.find_element(By.LINK_TEXT, 'BitBake')
|
||||
self.assertTrue(bitbake.is_displayed())
|
||||
bitbake.click()
|
||||
self.assertTrue("docs.yoctoproject.org/bitbake.html" in self.driver.current_url)
|
||||
self.assertTrue(
|
||||
"docs.yoctoproject.org/bitbake.html" in self.driver.current_url)
|
||||
|
||||
def test_yoctoproject_jumbotron_link_visible_and_clickable(self):
|
||||
""" Test Yocto Project link jumbotron is visible and clickable: """
|
||||
@@ -103,11 +105,12 @@ class TestLandingPage(SeleniumTestCase):
|
||||
|
||||
# check Big magenta button
|
||||
big_magenta_button = jumbotron.find_element(By.LINK_TEXT,
|
||||
'Toaster is ready to capture your command line builds'
|
||||
)
|
||||
'Toaster is ready to capture your command line builds'
|
||||
)
|
||||
self.assertTrue(big_magenta_button.is_displayed())
|
||||
big_magenta_button.click()
|
||||
self.assertTrue("docs.yoctoproject.org/toaster-manual/setup-and-use.html#setting-up-and-using-toaster" in self.driver.current_url)
|
||||
self.assertTrue(
|
||||
"docs.yoctoproject.org/toaster-manual/setup-and-use.html#setting-up-and-using-toaster" in self.driver.current_url)
|
||||
|
||||
def test_link_create_new_project_in_jumbotron_visible_and_clickable(self):
|
||||
""" Test big blue button create new project jumbotron if visible and clickable """
|
||||
@@ -120,8 +123,8 @@ class TestLandingPage(SeleniumTestCase):
|
||||
|
||||
# check Big Blue button
|
||||
big_blue_button = jumbotron.find_element(By.LINK_TEXT,
|
||||
'Create your first Toaster project to run manage builds'
|
||||
)
|
||||
'Create your first Toaster project to run manage builds'
|
||||
)
|
||||
self.assertTrue(big_blue_button.is_displayed())
|
||||
big_blue_button.click()
|
||||
self.assertTrue("toastergui/newproject/" in self.driver.current_url)
|
||||
@@ -132,10 +135,12 @@ class TestLandingPage(SeleniumTestCase):
|
||||
jumbotron = self.find('.jumbotron')
|
||||
|
||||
# check Read the Toaster manual
|
||||
toaster_manual = jumbotron.find_element(By.LINK_TEXT, 'Read the Toaster manual')
|
||||
toaster_manual = jumbotron.find_element(
|
||||
By.LINK_TEXT, 'Read the Toaster manual')
|
||||
self.assertTrue(toaster_manual.is_displayed())
|
||||
toaster_manual.click()
|
||||
self.assertTrue("https://docs.yoctoproject.org/toaster-manual/index.html#toaster-user-manual" in self.driver.current_url)
|
||||
self.assertTrue(
|
||||
"https://docs.yoctoproject.org/toaster-manual/index.html#toaster-user-manual" in self.driver.current_url)
|
||||
|
||||
def test_contrib_to_toaster_link_visible_and_clickable(self):
|
||||
""" Test Contribute to Toaster link jumbotron is visible and clickable: """
|
||||
@@ -143,10 +148,12 @@ class TestLandingPage(SeleniumTestCase):
|
||||
jumbotron = self.find('.jumbotron')
|
||||
|
||||
# check Contribute to Toaster
|
||||
contribute_to_toaster = jumbotron.find_element(By.LINK_TEXT, 'Contribute to Toaster')
|
||||
contribute_to_toaster = jumbotron.find_element(
|
||||
By.LINK_TEXT, 'Contribute to Toaster')
|
||||
self.assertTrue(contribute_to_toaster.is_displayed())
|
||||
contribute_to_toaster.click()
|
||||
self.assertTrue("wiki.yoctoproject.org/wiki/contribute_to_toaster" in str(self.driver.current_url).lower())
|
||||
self.assertTrue(
|
||||
"wiki.yoctoproject.org/wiki/contribute_to_toaster" in str(self.driver.current_url).lower())
|
||||
|
||||
def test_only_default_project(self):
|
||||
"""
|
||||
@@ -206,7 +213,7 @@ class TestLandingPage(SeleniumTestCase):
|
||||
|
||||
self.get(reverse('landing'))
|
||||
|
||||
self.wait_until_visible("#latest-builds")
|
||||
self.wait_until_visible("#latest-builds", poll=3)
|
||||
elements = self.find_all('#allbuildstable')
|
||||
self.assertEqual(len(elements), 1, 'should redirect to builds')
|
||||
content = self.get_page_source()
|
||||
|
||||
@@ -106,7 +106,7 @@ class TestLayerDetailsPage(SeleniumTestCase):
|
||||
for save_btn in self.find_all(".change-btn"):
|
||||
save_btn.click()
|
||||
|
||||
self.wait_until_visible("#save-changes-for-switch")
|
||||
self.wait_until_visible("#save-changes-for-switch", poll=3)
|
||||
btn_save_chg_for_switch = self.find("#save-changes-for-switch")
|
||||
btn_save_chg_for_switch.click()
|
||||
self.wait_until_visible("#edit-layer-source")
|
||||
@@ -137,7 +137,7 @@ class TestLayerDetailsPage(SeleniumTestCase):
|
||||
new_dir = "/home/test/my-meta-dir"
|
||||
dir_input.send_keys(new_dir)
|
||||
|
||||
self.wait_until_visible("#save-changes-for-switch")
|
||||
self.wait_until_visible("#save-changes-for-switch", poll=3)
|
||||
btn_save_chg_for_switch = self.find("#save-changes-for-switch")
|
||||
btn_save_chg_for_switch.click()
|
||||
self.wait_until_visible("#edit-layer-source")
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
#
|
||||
# Copyright (C) 2013-2016 Intel Corporation
|
||||
#
|
||||
import time
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
from tests.browser.selenium_helpers import SeleniumTestCase
|
||||
|
||||
@@ -45,10 +45,11 @@ class TestNewCustomImagePage(SeleniumTestCase):
|
||||
)
|
||||
|
||||
# add a fake image recipe to the layer that can be customised
|
||||
builldir = os.environ.get('BUILDDIR', './')
|
||||
self.recipe = Recipe.objects.create(
|
||||
name='core-image-minimal',
|
||||
layer_version=layer_version,
|
||||
file_path='/tmp/core-image-minimal.bb',
|
||||
file_path=f'{builldir}/core-image-minimal.bb',
|
||||
is_image=True
|
||||
)
|
||||
# create a tmp file for the recipe
|
||||
|
||||
@@ -6,8 +6,6 @@
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
import time
|
||||
|
||||
from django.urls import reverse
|
||||
from tests.browser.selenium_helpers import SeleniumTestCase
|
||||
from selenium.webdriver.support.ui import Select
|
||||
@@ -54,13 +52,12 @@ class TestNewProjectPage(SeleniumTestCase):
|
||||
select = Select(self.find('#projectversion'))
|
||||
select.select_by_value(str(self.release.pk))
|
||||
|
||||
time.sleep(1)
|
||||
self.click("#create-project-button")
|
||||
time.sleep(2)
|
||||
|
||||
# We should get redirected to the new project's page with the
|
||||
# notification at the top
|
||||
element = self.wait_until_visible('#project-created-notification')
|
||||
element = self.wait_until_visible(
|
||||
'#project-created-notification', poll=3)
|
||||
|
||||
self.assertTrue(project_name in element.text,
|
||||
"New project name not in new project notification")
|
||||
@@ -91,9 +88,8 @@ class TestNewProjectPage(SeleniumTestCase):
|
||||
radio.click()
|
||||
|
||||
self.click("#create-project-button")
|
||||
time.sleep(2)
|
||||
|
||||
element = self.wait_until_visible('#hint-error-project-name')
|
||||
element = self.wait_until_visible('#hint-error-project-name', poll=3)
|
||||
|
||||
self.assertTrue(("Project names must be unique" in element.text),
|
||||
"Did not find unique project name error message")
|
||||
@@ -105,7 +101,6 @@ class TestNewProjectPage(SeleniumTestCase):
|
||||
except InvalidElementStateException:
|
||||
pass
|
||||
|
||||
time.sleep(2)
|
||||
self.assertTrue(
|
||||
(Project.objects.filter(name=project_name).count() == 1),
|
||||
"New project not found in database")
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
|
||||
import os
|
||||
import re
|
||||
|
||||
from django.urls import reverse
|
||||
@@ -22,7 +23,8 @@ class TestProjectBuildsPage(SeleniumTestCase):
|
||||
CLI_BUILDS_PROJECT_NAME = 'command line builds'
|
||||
|
||||
def setUp(self):
|
||||
bbv = BitbakeVersion.objects.create(name='bbv1', giturl='/tmp/',
|
||||
builldir = os.environ.get('BUILDDIR', './')
|
||||
bbv = BitbakeVersion.objects.create(name='bbv1', giturl=f'{builldir}/',
|
||||
branch='master', dirpath='')
|
||||
release = Release.objects.create(name='release1',
|
||||
bitbake_version=bbv)
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
|
||||
import os
|
||||
from django.urls import reverse
|
||||
from tests.browser.selenium_helpers import SeleniumTestCase
|
||||
|
||||
@@ -22,7 +23,8 @@ class TestProjectConfigsPage(SeleniumTestCase):
|
||||
'any of these characters'
|
||||
|
||||
def setUp(self):
|
||||
bbv = BitbakeVersion.objects.create(name='bbv1', giturl='/tmp/',
|
||||
builldir = os.environ.get('BUILDDIR', './')
|
||||
bbv = BitbakeVersion.objects.create(name='bbv1', giturl=f'{builldir}/',
|
||||
branch='master', dirpath='')
|
||||
release = Release.objects.create(name='release1',
|
||||
bitbake_version=bbv)
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#
|
||||
|
||||
from datetime import datetime
|
||||
import os
|
||||
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
@@ -59,7 +60,8 @@ class TestToasterTableUI(SeleniumTestCase):
|
||||
later = now + timezone.timedelta(hours=1)
|
||||
even_later = later + timezone.timedelta(hours=1)
|
||||
|
||||
bbv = BitbakeVersion.objects.create(name='test bbv', giturl='/tmp/',
|
||||
builldir = os.environ.get('BUILDDIR', './')
|
||||
bbv = BitbakeVersion.objects.create(name='test bbv', giturl=f'{builldir}/',
|
||||
branch='master', dirpath='')
|
||||
release = Release.objects.create(name='test release',
|
||||
branch_name='master',
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
"""Test cases for Toaster GUI and ReST."""
|
||||
|
||||
import os
|
||||
import pytest
|
||||
from django.test import TestCase
|
||||
from django.test.client import RequestFactory
|
||||
@@ -39,6 +40,7 @@ class ViewTests(TestCase):
|
||||
"""Tests to verify view APIs."""
|
||||
|
||||
fixtures = ['toastergui-unittest-data']
|
||||
builldir = os.environ.get('BUILDDIR')
|
||||
|
||||
def setUp(self):
|
||||
|
||||
@@ -46,7 +48,7 @@ class ViewTests(TestCase):
|
||||
|
||||
self.recipe1 = Recipe.objects.get(pk=2)
|
||||
# create a file and to recipe1 file_path
|
||||
file_path = f"/tmp/{self.recipe1.name.strip().replace(' ', '-')}.bb"
|
||||
file_path = f"{self.builldir}/{self.recipe1.name.strip().replace(' ', '-')}.bb"
|
||||
with open(file_path, 'w') as f:
|
||||
f.write('foo')
|
||||
self.recipe1.file_path = file_path
|
||||
@@ -240,7 +242,7 @@ class ViewTests(TestCase):
|
||||
recipe = CustomImageRecipe.objects.create(
|
||||
name=name, project=self.project,
|
||||
base_recipe=self.recipe1,
|
||||
file_path="/tmp/testing",
|
||||
file_path=f"{self.builldir}/testing",
|
||||
layer_version=self.customr.layer_version)
|
||||
url = reverse('xhr_customrecipe_id', args=(recipe.id,))
|
||||
response = self.client.delete(url)
|
||||
@@ -311,7 +313,7 @@ class ViewTests(TestCase):
|
||||
"""Download the recipe file generated for the custom image"""
|
||||
|
||||
# Create a dummy recipe file for the custom image generation to read
|
||||
open("/tmp/a_recipe.bb", 'a').close()
|
||||
open(f"{self.builldir}/a_recipe.bb", 'a').close()
|
||||
response = self.client.get(reverse('customrecipedownload',
|
||||
args=(self.project.id,
|
||||
self.customr.id)))
|
||||
|
||||
Reference in New Issue
Block a user