mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
58 lines
1.8 KiB
Diff
58 lines
1.8 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: Dylan Baker <dylan@pnwbakers.com>
|
||
|
Date: Mon, 11 Mar 2024 11:31:05 -0700
|
||
|
Subject: [PATCH] unittests: Add a helper for copying source trees
|
||
|
|
||
|
This is a useful thing to do when a test needs to modify the source
|
||
|
tree, as it prevents races between tests.
|
||
|
---
|
||
|
unittests/baseplatformtests.py | 23 +++++++++++++++++++++++
|
||
|
1 file changed, 23 insertions(+)
|
||
|
|
||
|
diff --git a/unittests/baseplatformtests.py b/unittests/baseplatformtests.py
|
||
|
index 6125ed933209..93bfc8905b73 100644
|
||
|
--- a/unittests/baseplatformtests.py
|
||
|
+++ b/unittests/baseplatformtests.py
|
||
|
@@ -1,14 +1,17 @@
|
||
|
# SPDX-License-Identifier: Apache-2.0
|
||
|
# Copyright 2016-2021 The Meson development team
|
||
|
+# Copyright © 2024 Intel Corporation
|
||
|
|
||
|
+from __future__ import annotations
|
||
|
from pathlib import PurePath
|
||
|
from unittest import mock, TestCase, SkipTest
|
||
|
import json
|
||
|
import io
|
||
|
import os
|
||
|
import re
|
||
|
import subprocess
|
||
|
import sys
|
||
|
+import shutil
|
||
|
import tempfile
|
||
|
import typing as T
|
||
|
|
||
|
@@ -492,3 +495,23 @@ class BasePlatformTests(TestCase):
|
||
|
|
||
|
def assertLength(self, val, length):
|
||
|
assert len(val) == length, f'{val} is not length {length}'
|
||
|
+
|
||
|
+ def copy_srcdir(self, srcdir: str) -> str:
|
||
|
+ """Copies a source tree and returns that copy.
|
||
|
+
|
||
|
+ ensures that the copied tree is deleted after running.
|
||
|
+
|
||
|
+ :param srcdir: The locaiton of the source tree to copy
|
||
|
+ :return: The location of the copy
|
||
|
+ """
|
||
|
+ dest = tempfile.mkdtemp()
|
||
|
+ self.addCleanup(windows_proof_rmtree, dest)
|
||
|
+
|
||
|
+ # shutil.copytree expects the destinatin directory to not exist, Once
|
||
|
+ # python 3.8 is required the `dirs_exist_ok` parameter negates the need
|
||
|
+ # for this
|
||
|
+ dest = os.path.join(dest, 'subdir')
|
||
|
+
|
||
|
+ shutil.copytree(srcdir, dest)
|
||
|
+
|
||
|
+ return dest
|