summaryrefslogtreecommitdiff
path: root/testsuite/overrides_hack.py
blob: 6df694d3ff20047d4153bfd7e152b3245637532d (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
import os
import sys
import imp

class GstOverrideImport:
    def find_module(self, fullname, path=None):
        if fullname in ('gi.overrides.Gst', 'gi.overrides._gi_gst'):
            return self
        return None

    def load_module(self, name):
        if name in sys.modules:
            return sys.modules[name]

        fp, pathname, description = imp.find_module(name.split('.')[-1], [
            os.environ.get('GST_OVERRIDE_SRC_PATH'),
            os.environ.get('GST_OVERRIDE_BUILD_PATH'),
        ])

        try:
            module = imp.load_module(name, fp, pathname, description)
        finally:
            if fp:
                fp.close()
        sys.modules[name] = module
        return module

sys.meta_path.insert(0, GstOverrideImport())