def virtual_test(self):
        references = References()
        references[va].add('a.h')

        code = (
            'def virtual(settings):\n\tif(settings.os.family == "windows"):return "win"\n'
            '\telse: return "nix"')
        a = Resource(VirtualCell('user/blocka/a.h', code, {'win', 'nix'}))

        awin = Resource(SimpleCell('user/blocka/win/a.h'))
        anix = Resource(SimpleCell('user/blocka/nix/a.h'))
        b = Resource(SimpleCell('user/blockb/b.h'))
        d1 = Resource(SimpleCell('user/blockd/d.h'))
        awin.cell.dependencies.explicit.add(b.name)
        anix.cell.dependencies.explicit.add(d1.name)

        tables = {va: [vb, vd1], vb: [], vd1: []}
        api = FakeApi(zip([va, va, va, vb, vd1], [a, awin, anix, b, d1]),
                      tables)

        #With windows settings
        settings = Settings(OSInfo(OSFamily("Windows")))
        biiout = OutputStream()
        graph, closure, _ = build_closure(api, references, {}, settings,
                                          biiout)
        expected_graph = BlockVersionGraph()
        expected_graph.add_nodes([va, vb])
        expected_graph.add_edge(va, vb)
        self.assertEqual(expected_graph, graph)
        expected_closure = Closure({
            a.name: ClosureItem(a, va),
            awin.name: ClosureItem(awin, va),
            b.name: ClosureItem(b, vb),
        })
        self.assertEqual(expected_closure, closure)
        self.assertEqual("", str(biiout))

        #Change settings
        settings = Settings(OSInfo(OSFamily("Linux")))
        biiout = OutputStream()
        graph, closure, _ = build_closure(api, references, {}, settings,
                                          biiout)
        expected_graph = BlockVersionGraph()
        expected_graph.add_nodes([va, vd1])
        expected_graph.add_edge(va, vd1)
        self.assertEqual(expected_graph, graph)
        expected_closure = Closure({
            a.name: ClosureItem(a, va),
            anix.name: ClosureItem(anix, va),
            d1.name: ClosureItem(d1, vd1),
        })
        self.assertEqual(expected_closure, closure)
        self.assertEqual("", str(biiout))
Beispiel #2
0
    def _sphere_os_checks(self, name):
        vsphere = self.block_holder[name].cell
        self.assertTrue(isinstance(vsphere, VirtualCell), '%s is not a VirtualCell' % vsphere.name)
        self.assertEqual(set(['win', 'nix']), vsphere.leaves)
        self.assertEqual(set(['user/block/win/%s' % name, 'user/block/nix/%s' % name]),
                         set(vsphere.resource_leaves))

        settings = Settings(OSInfo('linux'))
        self.assertEqual('user/block/nix/%s' % name, vsphere.evaluate(settings))

        settings = Settings(OSInfo('windows'))
        self.assertEqual('user/block/win/%s' % name, vsphere.evaluate(settings))

        winsphere = self.block_holder['win/%s' % name].cell
        self.assertTrue(isinstance(winsphere, SimpleCell))
        nixsphere = self.block_holder['nix/%s' % name].cell
        self.assertTrue(isinstance(nixsphere, SimpleCell))
Beispiel #3
0
 def __init__(self, name_id, biiType, version_id=None, language_version=None, os_info=None,
              tool_info=None, path=""):
     self.name_id = name_id
     self.biiType = biiType
     self.__version_id = version_id
     self.__language_version = language_version or Version()
     self.os_info = os_info or OSInfo()
     self.tool_info = tool_info or ToolInfo()
     self.path = path
Beispiel #4
0
 def set_generic_system(self):
     self.language_version = Version()
     self.os_info = OSInfo()
Beispiel #5
0
 def __init__(self, os_name_mock):
     os_info.capture = Mock(return_value=OSInfo(os_name_mock))
     self.user_io = Mock()