diff mbox series

[3/5] bitbake: tests/fetch: Set git config if not already set

Message ID 20230616123651.915234-4-peter.hoyes@arm.com
State Accepted, archived
Commit 0c7079d0609a13713b890a9675abd9fba032f199
Headers show
Series RFC: Support pytest for bitbake self-tests | expand

Commit Message

Peter Hoyes June 16, 2023, 12:36 p.m. UTC
From: Peter Hoyes <Peter.Hoyes@arm.com>

git config returns an error code if user.email or user.name are not set,
so bb.process.run raises an ExecutionError, failing the test.

Improve the logic by catching the ExectionError and using this to set a
default value.

Change a direct invocation of 'git init' to use self.git_init so that
it follows the code path above.

Remove the related comment from the README now that git sets up the user
details automatically.

Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
---
 bitbake/README                |  3 +--
 bitbake/lib/bb/tests/fetch.py | 12 +++++++++---
 2 files changed, 10 insertions(+), 5 deletions(-)
diff mbox series

Patch

diff --git a/bitbake/README b/bitbake/README
index a5f5c1b64f..bdb1e81dc1 100644
--- a/bitbake/README
+++ b/bitbake/README
@@ -45,8 +45,7 @@  it has so many corner cases. The datastore has many tests too. Testing with the
 recommended before submitting patches, particularly to the fetcher and datastore. We also
 appreciate new test cases and may require them for more obscure issues.
 
-To run the tests "zstd" and "git" must be installed. Git must be correctly configured, in
-particular the user.email and user.name values must be set.
+To run the tests "zstd" and "git" must be installed.
 
 The assumption is made that this testsuite is run from an initialized OpenEmbedded build
 environment (i.e. `source oe-init-build-env` is used). If this is not the case, run the
diff --git a/bitbake/lib/bb/tests/fetch.py b/bitbake/lib/bb/tests/fetch.py
index 871c174e82..8ca7e6c155 100644
--- a/bitbake/lib/bb/tests/fetch.py
+++ b/bitbake/lib/bb/tests/fetch.py
@@ -429,9 +429,15 @@  class FetcherTest(unittest.TestCase):
         # a common setup is to use other default
         # branch than master.
         self.git(['checkout', '-b', 'master'], cwd=cwd)
-        if not self.git(['config', 'user.email'], cwd=cwd):
+
+        try:
+            self.git(['config', 'user.email'], cwd=cwd)
+        except bb.process.ExecutionError:
             self.git(['config', 'user.email', 'you@example.com'], cwd=cwd)
-        if not self.git(['config', 'user.name'], cwd=cwd):
+
+        try:
+            self.git(['config', 'user.name'], cwd=cwd)
+        except bb.process.ExecutionError:
             self.git(['config', 'user.name', 'Your Name'], cwd=cwd)
 
 class MirrorUriTest(FetcherTest):
@@ -3038,7 +3044,7 @@  class FetchPremirroronlyLocalTest(FetcherTest):
         self.mirrorname = "git2_git.fake.repo.bitbake.tar.gz"
         recipeurl = "git:/git.fake.repo/bitbake"
         os.makedirs(self.gitdir)
-        self.git("init", self.gitdir)
+        self.git_init(cwd=self.gitdir)
         for i in range(0):
             self.git_new_commit()
         bb.process.run('tar -czvf {} .'.format(os.path.join(self.mirrordir, self.mirrorname)), cwd =  self.gitdir)