From patchwork Tue Oct 31 17:41:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alassane Yattara X-Patchwork-Id: 33208 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4F8F8C4332F for ; Tue, 31 Oct 2023 17:42:23 +0000 (UTC) Received: from mail.savoirfairelinux.com (mail.savoirfairelinux.com [208.88.110.44]) by mx.groups.io with SMTP id smtpd.web11.2211.1698774134726465112 for ; Tue, 31 Oct 2023 10:42:15 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@savoirfairelinux.com header.s=DFC430D2-D198-11EC-948E-34200CB392D2 header.b=YN2LLGRW; spf=pass (domain: savoirfairelinux.com, ip: 208.88.110.44, mailfrom: alassane.yattara@savoirfairelinux.com) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id 5A5369C2BF6 for ; Tue, 31 Oct 2023 13:42:13 -0400 (EDT) Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavis, port 10032) with ESMTP id KhLVsEYYXbd3; Tue, 31 Oct 2023 13:42:12 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id D62349C279F; Tue, 31 Oct 2023 13:42:12 -0400 (EDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.savoirfairelinux.com D62349C279F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=savoirfairelinux.com; s=DFC430D2-D198-11EC-948E-34200CB392D2; t=1698774132; bh=HNEwh15gbBG152j7VR387hSlJFFLpMZTQmE/+2V/VmU=; h=From:To:Date:Message-Id:MIME-Version; b=YN2LLGRWzX5wEpeaMDcgziz9P0x/GmD9uYerw5LgAiZXvIppovNLvFSFXUIn7wUfT p7So3LFf/q+4Ssk9cimbd4L7WVpkeNmJ6aK3fXMW3J4rCYX+pFidBuRFoBoursG+B8 65H5zPWiE2Ht0EGXopicEjjOlhdyHQ/DFuYs572A1lPJw7Q4c+WNVKR+s8tqu1sHvH Pbxdb2JgDPYHGXjey0dtM4Qg6AM92zuBOwaVHjm3bodf099UrJ1gYO1Z4HJ3iUwZVU gvwsH852ezyFNmPwXQUw2O4xMUo6snTwCUVa6ugAicfjQHdk9MPuGocYISo0q4o28j qP1kPwaq/Tiyw== X-Virus-Scanned: amavis at mail.savoirfairelinux.com Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavis, port 10026) with ESMTP id ySUEC6DE5ntU; Tue, 31 Oct 2023 13:42:12 -0400 (EDT) Received: from jedi.. (unknown [196.127.183.75]) by mail.savoirfairelinux.com (Postfix) with ESMTPSA id F3B3E9C2BF6; Tue, 31 Oct 2023 13:42:11 -0400 (EDT) From: Alassane Yattara To: bitbake-devel@lists.openembedded.org Cc: Alassane Yattara Subject: [PATCH v2 1/8] Toaster: Update toaster-requirements.txt to add pytest and some plugin's Date: Tue, 31 Oct 2023 18:41:56 +0100 Message-Id: <20231031174159.696667-1-alassane.yattara@savoirfairelinux.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 31 Oct 2023 17:42:23 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/15373 The pytest framework makes it easy to write small, readable tests, and can scale to support complex functional testing for applications and libraries. - Pytest-html is a plugin for pytest that generates a HTML report for test results. - Pytest-django allows us to test Django project/applications with the pytest testing tool. - Pytest-env is a pytest plugin that enables us to set environment variables in a pytest.ini or pyproject.toml file - Pytest-metadata is a plugin for pytest that provides access to test session metadata, required by pytest-html plugin to provides metadata information in the HTML report like below: Python 3.10.12 Platform Linux-6.2.0-35-generic-x86_64-with-glibc2.35 Packages: - pytest: 7.4.2 - pluggy: 1.3.0 Plugins : - django: 4.5.2 - metadata: 3.0.0 - order: 1.1.0 - html: 4.0.2 - env: 1.1.0 Signed-off-by: Alassane Yattara --- toaster-requirements.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/toaster-requirements.txt b/toaster-requirements.txt index d8e48b7f..19bf6fd2 100644 --- a/toaster-requirements.txt +++ b/toaster-requirements.txt @@ -2,3 +2,8 @@ Django>4.2,<4.3 beautifulsoup4>=4.4.0 pytz django-log-viewer==1.1.7 +pytest==7.4.2 +pytest-django==4.5.2 +pytest-env==1.1.0 +pytest-html==4.0.2 +pytest-metadata==3.0.0 From patchwork Tue Oct 31 17:41:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alassane Yattara X-Patchwork-Id: 33209 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 66A63C41535 for ; Tue, 31 Oct 2023 17:42:23 +0000 (UTC) Received: from mail.savoirfairelinux.com (mail.savoirfairelinux.com [208.88.110.44]) by mx.groups.io with SMTP id smtpd.web10.2154.1698774135514806046 for ; Tue, 31 Oct 2023 10:42:16 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@savoirfairelinux.com header.s=DFC430D2-D198-11EC-948E-34200CB392D2 header.b=slc0gFFj; spf=pass (domain: savoirfairelinux.com, ip: 208.88.110.44, mailfrom: alassane.yattara@savoirfairelinux.com) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id 6B1F99C2C3E for ; Tue, 31 Oct 2023 13:42:14 -0400 (EDT) Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavis, port 10032) with ESMTP id dobroo4e5Srv; Tue, 31 Oct 2023 13:42:14 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id F3A279C279F; Tue, 31 Oct 2023 13:42:13 -0400 (EDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.savoirfairelinux.com F3A279C279F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=savoirfairelinux.com; s=DFC430D2-D198-11EC-948E-34200CB392D2; t=1698774133; bh=JhLwEPCsmDfLpE/oLx8JWsAus2WbbiL787g0liGl4FI=; h=From:To:Date:Message-Id:MIME-Version; b=slc0gFFj+oAo3YSs3dtxlTaoJqUN2n8Jwp5Vm3nuSkXn1oyoX3q8TzrDFumEaXcB/ zbHsgDO5eHIT1QsR4kF9e2DRQWLSVR7FJhcuzriVwOLURXjyf2Jru6ZwguKZW8lhFU AS0tsUBNhX83YfRb5IzA6S0kxH7+viwmv9xN0s7S9v9Xg0WJIq79xtTttKXTQb7JKx B8xzcV/I1V5PW5zzSW8v9fqrD85tuANBYuonvOiWBoHObgQtjJ9N2V+Ae8usHis+XJ xnsS0gWeAsSujGaRj5IHqHJZYojUKHWqkFFu/zsqRv54Z6KAbKoG5WPHkbQAxwsb6G XB8aIBgDhnufw== X-Virus-Scanned: amavis at mail.savoirfairelinux.com Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavis, port 10026) with ESMTP id 8u1OgmVEqwMJ; Tue, 31 Oct 2023 13:42:13 -0400 (EDT) Received: from jedi.. (unknown [196.127.183.75]) by mail.savoirfairelinux.com (Postfix) with ESMTPSA id 35C9A9C2BE3; Tue, 31 Oct 2023 13:42:13 -0400 (EDT) From: Alassane Yattara To: bitbake-devel@lists.openembedded.org Cc: Alassane Yattara Subject: [PATCH v2 2/8] Toaster: Update orm.models to catch error ProcessLookupError Date: Tue, 31 Oct 2023 18:41:57 +0100 Message-Id: <20231031174159.696667-2-alassane.yattara@savoirfairelinux.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231031174159.696667-1-alassane.yattara@savoirfairelinux.com> References: <20231031174159.696667-1-alassane.yattara@savoirfairelinux.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 31 Oct 2023 17:42:23 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/15374 - Remove extra line to keep standart in file. Yes, there are PEP8 style guide: - Two blank lines between each function, class declaration W'll update whole file for PEP8 standard style guide when need. - Added logs for catched ProcessLookupError Signed-off-by: Alassane Yattara --- lib/toaster/orm/models.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/toaster/orm/models.py b/lib/toaster/orm/models.py index 0d503a51..1098ad3f 100644 --- a/lib/toaster/orm/models.py +++ b/lib/toaster/orm/models.py @@ -1389,9 +1389,6 @@ class Machine(models.Model): return "Machine " + self.name + "(" + self.description + ")" - - - class BitbakeVersion(models.Model): name = models.CharField(max_length=32, unique = True) @@ -1853,6 +1850,8 @@ def signal_runbuilds(): os.kill(int(pidf.read()), SIGUSR1) except FileNotFoundError: logger.info("Stopping existing runbuilds: no current process found") + except ProcessLookupError: + logger.warning("Stopping existing runbuilds: process lookup not found") class Distro(models.Model): search_allowed_fields = ["name", "description", "layer_version__layer__name"] From patchwork Tue Oct 31 17:41:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alassane Yattara X-Patchwork-Id: 33210 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5973DC00142 for ; Tue, 31 Oct 2023 17:42:23 +0000 (UTC) Received: from mail.savoirfairelinux.com (mail.savoirfairelinux.com [208.88.110.44]) by mx.groups.io with SMTP id smtpd.web11.2213.1698774136613706751 for ; Tue, 31 Oct 2023 10:42:16 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@savoirfairelinux.com header.s=DFC430D2-D198-11EC-948E-34200CB392D2 header.b=XnMZ1ucH; spf=pass (domain: savoirfairelinux.com, ip: 208.88.110.44, mailfrom: alassane.yattara@savoirfairelinux.com) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id 01E969C2BF6 for ; Tue, 31 Oct 2023 13:42:16 -0400 (EDT) Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavis, port 10032) with ESMTP id YqFXr_6h4Abi; Tue, 31 Oct 2023 13:42:15 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id 3749D9C279F; Tue, 31 Oct 2023 13:42:15 -0400 (EDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.savoirfairelinux.com 3749D9C279F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=savoirfairelinux.com; s=DFC430D2-D198-11EC-948E-34200CB392D2; t=1698774135; bh=GesLj5+Tfp6+cElUD4N1oiRTqPVAwnFMvCqk+qYl7BU=; h=From:To:Date:Message-Id:MIME-Version; b=XnMZ1ucHcaiH9jdA9PlBvIKkrD/j2U23yfsgjBuD400Cbe/Bs9Fda4SCOS8c2GCV4 XZTtNbwHoelWKI73zvngHF6OXlzsPFJvpNZ5XKWiYJbaT3bIR2q38RWJI/+XN8KQcu 4w7OFrUVEPuw7f8G33vxoOUWZYqRFBdi8wCMqOPqkLy1nwD2Lfc6oQLzFMm5//CGHJ 1L5zNnljlOuV7eY5pbMd8pN2NRguS96pPwYY6wri8/5x9LPX79E1WaVzbLH6af9T7J acM2qAKPoLYoY0yhuIHaqF3Srl5NWpuFMfb17znxB6yreoIcIHTzSJENtOrmuhUWVS QRsNKP1auq8bw== X-Virus-Scanned: amavis at mail.savoirfairelinux.com Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavis, port 10026) with ESMTP id Dbl_4fymVjn2; Tue, 31 Oct 2023 13:42:15 -0400 (EDT) Received: from jedi.. (unknown [196.127.183.75]) by mail.savoirfairelinux.com (Postfix) with ESMTPSA id 54AF29C2BE3; Tue, 31 Oct 2023 13:42:14 -0400 (EDT) From: Alassane Yattara To: bitbake-devel@lists.openembedded.org Cc: Alassane Yattara Subject: [PATCH v2 3/8] Toaster: Bug-fix pytest and Failed: Database access not allowed Date: Tue, 31 Oct 2023 18:41:58 +0100 Message-Id: <20231031174159.696667-3-alassane.yattara@savoirfairelinux.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231031174159.696667-1-alassane.yattara@savoirfairelinux.com> References: <20231031174159.696667-1-alassane.yattara@savoirfairelinux.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 31 Oct 2023 17:42:23 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/15375 Remove load and create build environment from tests/functional/functional_helpers - Testcases in the FunctionalTestCase do not require a build process, - Also marked setUpClass or class with pytest django_db, db ... not working, as declared above of file functional_helpers.py, The database access process runs as an external process, separate from the test case process and outside the context of pytest. Signed-off-by: Alassane Yattara --- lib/toaster/tests/functional/functional_helpers.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/lib/toaster/tests/functional/functional_helpers.py b/lib/toaster/tests/functional/functional_helpers.py index c3191f66..b80d403b 100644 --- a/lib/toaster/tests/functional/functional_helpers.py +++ b/lib/toaster/tests/functional/functional_helpers.py @@ -15,8 +15,6 @@ import time import re from tests.browser.selenium_helpers_base import SeleniumTestCaseBase -from tests.builds.buildtest import load_build_environment -from bldcontrol.models import BuildEnvironment from selenium.webdriver.common.by import By from selenium.common.exceptions import NoSuchElementException @@ -33,10 +31,6 @@ class SeleniumFunctionalTestCase(SeleniumTestCaseBase): raise RuntimeError("Please initialise django with the tests settings: " \ "DJANGO_SETTINGS_MODULE='toastermain.settings_test'") - if BuildEnvironment.objects.count() == 0: - BuildEnvironment.objects.create(betype=BuildEnvironment.TYPE_LOCAL) - load_build_environment() - # start toaster cmd = "bash -c 'source toaster start'" p = subprocess.Popen( From patchwork Tue Oct 31 17:41:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alassane Yattara X-Patchwork-Id: 33207 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 531FFC4167B for ; Tue, 31 Oct 2023 17:42:23 +0000 (UTC) Received: from mail.savoirfairelinux.com (mail.savoirfairelinux.com [208.88.110.44]) by mx.groups.io with SMTP id smtpd.web11.2215.1698774137444010833 for ; Tue, 31 Oct 2023 10:42:17 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@savoirfairelinux.com header.s=DFC430D2-D198-11EC-948E-34200CB392D2 header.b=qyYqXSHF; spf=pass (domain: savoirfairelinux.com, ip: 208.88.110.44, mailfrom: alassane.yattara@savoirfairelinux.com) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id CE6EC9C2BE3 for ; Tue, 31 Oct 2023 13:42:16 -0400 (EDT) Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavis, port 10032) with ESMTP id E5Ve5wkdc4d6; Tue, 31 Oct 2023 13:42:16 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id 56EB99C279F; Tue, 31 Oct 2023 13:42:16 -0400 (EDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.savoirfairelinux.com 56EB99C279F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=savoirfairelinux.com; s=DFC430D2-D198-11EC-948E-34200CB392D2; t=1698774136; bh=wIHbE11BWKitYZkfAFNEA6bXcaZDEe9cTiCXpyD4qwk=; h=From:To:Date:Message-Id:MIME-Version; b=qyYqXSHFC0MMe26a76KVO6cgBq8o8d/ckREQMxVivYWlUX4hUAMajSKAGI3Wl1y78 vBDHH4TbDT1PxZjGA38Drtla40rKQwCVD3P7yvk3hzZlRjDyQuH4KSem+Mw8nTsyqi moT8UPJ337x3U31KV75ExEQfd57AIPZfYzUAwtsNJb/4thaF/WZmI8Is0hsKdkFzAZ 8dJ0otIwJ8tyHXlk19864AdutwjlrJLd2tMlLwrY2aCP6AtsTOydEcfcyvROZ0aciA e+Z11CgiTRMBd3DZh4JbiTlZ7AzWM1hXiGNEONE9FYqX1NLaaNgSqk5y4maaHrmfNw RA3qeNbZ3vpxw== X-Virus-Scanned: amavis at mail.savoirfairelinux.com Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavis, port 10026) with ESMTP id mApAPMWBVFHC; Tue, 31 Oct 2023 13:42:16 -0400 (EDT) Received: from jedi.. (unknown [196.127.183.75]) by mail.savoirfairelinux.com (Postfix) with ESMTPSA id 8C9699C2BE3; Tue, 31 Oct 2023 13:42:15 -0400 (EDT) From: Alassane Yattara To: bitbake-devel@lists.openembedded.org Cc: Alassane Yattara Subject: [PATCH v2 4/8] Toaster: fixed pytest error: Database access not allowed, use the "django_db" Date: Tue, 31 Oct 2023 18:41:59 +0100 Message-Id: <20231031174159.696667-4-alassane.yattara@savoirfairelinux.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231031174159.696667-1-alassane.yattara@savoirfairelinux.com> References: <20231031174159.696667-1-alassane.yattara@savoirfairelinux.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 31 Oct 2023 17:42:23 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/15376 Pytest failed on functional/test_functional_basic because database access not allowed - we should use "django_db" fixture to allowed db access Note: Pytest-django takes a conservative approach to enabling database access. By default your tests will fail if they try to access the database. Only if you explicitly request database access will this be allowed. https://pytest-django.readthedocs.io/en/latest/helpers.html#pytest-mark-django-db-request-database-access Signed-off-by: Alassane Yattara --- lib/toaster/tests/functional/test_functional_basic.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/toaster/tests/functional/test_functional_basic.py b/lib/toaster/tests/functional/test_functional_basic.py index b0def544..7e9be91c 100644 --- a/lib/toaster/tests/functional/test_functional_basic.py +++ b/lib/toaster/tests/functional/test_functional_basic.py @@ -8,6 +8,7 @@ # import re, time +import pytest from django.urls import reverse from tests.functional.functional_helpers import SeleniumFunctionalTestCase from orm.models import Project @@ -16,6 +17,7 @@ from selenium.webdriver.common.by import By class FuntionalTestBasic(SeleniumFunctionalTestCase): # testcase (1514) + @pytest.mark.django_db def test_create_slenium_project(self): project_name = 'selenium-project' self.get(reverse('newproject'))