summaryrefslogtreecommitdiff
path: root/tests/sources/project_key_test/plugins/sources/key-test.py
blob: 30256929cdee010b6c39d4f77681a0e5cf7d92dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import os

from buildstream import Source, Consistency


class KeyTest(Source):
    """ This plugin should fail if get_unique_key is called before track
    """

    def preflight(self):
        pass

    def configure(self, node):
        if node.get_scalar("ref", None).is_none():
            self.ref = None
        else:
            self.ref = True

    def get_unique_key(self):
        assert self.ref
        return "abcdefg"

    def get_consistency(self):
        if self.ref:
            return Consistency.RESOLVED
        else:
            return Consistency.INCONSISTENT

    def load_ref(self, node):
        pass

    def get_ref(self):
        return self.ref

    def set_ref(self, ref, node):
        node["ref"] = self.ref = ref

    def track(self, **kwargs):
        return True

    def fetch(self, **kwargs):
        pass

    def stage(self, directory):
        # Create a dummy file as output, as import elements do not allow empty
        # output. Its existence is a statement that we have staged ourselves.
        open(os.path.join(directory, "output"), "w").close()


def setup():
    return KeyTest