summaryrefslogtreecommitdiffstats
path: root/meta/lib/patchtest/patch.py
diff options
context:
space:
mode:
Diffstat (limited to 'meta/lib/patchtest/patch.py')
-rw-r--r--meta/lib/patchtest/patch.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/meta/lib/patchtest/patch.py b/meta/lib/patchtest/patch.py
new file mode 100644
index 0000000000..baf6283873
--- /dev/null
+++ b/meta/lib/patchtest/patch.py
@@ -0,0 +1,62 @@
1# ex:ts=4:sw=4:sts=4:et
2# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
3#
4# patchtestpatch: PatchTestPatch class which abstracts a patch file
5#
6# Copyright (C) 2016 Intel Corporation
7#
8# SPDX-License-Identifier: GPL-2.0-only
9#
10
11import logging
12import utils
13
14logger = logging.getLogger('patchtest')
15
16class PatchTestPatch(object):
17 MERGE_STATUS_INVALID = 'INVALID'
18 MERGE_STATUS_NOT_MERGED = 'NOTMERGED'
19 MERGE_STATUS_MERGED_SUCCESSFULL = 'PASS'
20 MERGE_STATUS_MERGED_FAIL = 'FAIL'
21 MERGE_STATUS = (MERGE_STATUS_INVALID,
22 MERGE_STATUS_NOT_MERGED,
23 MERGE_STATUS_MERGED_SUCCESSFULL,
24 MERGE_STATUS_MERGED_FAIL)
25
26 def __init__(self, path, forcereload=False):
27 self._path = path
28 self._forcereload = forcereload
29
30 self._contents = None
31 self._branch = None
32 self._merge_status = PatchTestPatch.MERGE_STATUS_NOT_MERGED
33
34 @property
35 def contents(self):
36 if self._forcereload or (not self._contents):
37 logger.debug('Reading %s contents' % self._path)
38 try:
39 with open(self._path, newline='') as _f:
40 self._contents = _f.read()
41 except IOError:
42 logger.warn("Reading the mbox %s failed" % self.resource)
43 return self._contents
44
45 @property
46 def path(self):
47 return self._path
48
49 @property
50 def branch(self):
51 if not self._branch:
52 self._branch = utils.get_branch(self._path)
53 return self._branch
54
55 def setmergestatus(self, status):
56 self._merge_status = status
57
58 def getmergestatus(self):
59 return self._merge_status
60
61 merge_status = property(getmergestatus, setmergestatus)
62